解決策 1:
systemd に /var/run
の下にディレクトリを作成させる方法は 2 つあります。 / /run
.
通常、最も簡単なのは RuntimeDirectory
を宣言することです あなたのサービスのユニットファイルで。例:
RuntimeDirectory=foo
これにより /var/run/foo
が作成されます システムユニット用。 (注:/var/run
の下のパスのみを指定してください。フル パスを指定しないでください。 ) 完全なドキュメントについては、systemd.exec ドキュメントの該当するエントリを参照してください。
より複雑または異なる構成または有効期間の保証が必要なランタイム ディレクトリの場合は、tmpfiles.d
を使用します。 そしてあなたのパッケージにファイル /usr/lib/tmpfiles.d/mydaemon.conf
をドロップさせます :
#Type Path Mode UID GID Age Argument d /run/mydaemon 0755 myuser myuser - -
ここで tmpfiles.d の完全なドキュメントを参照してください。
解決策 2:
開始時にディレクトリを作成するサービスを作成しました:
vim /etc/systemd/system/mydaemon-helper.service
/etc/systemd/system/mydaemon-helper.service
の内容 :
[Unit]
Description=MyDaemon Helper Simple Service
After=network.target
[Service]
Type=simple
ExecStartPre=-/usr/bin/mkdir /var/run/mydaemon
ExecStart=/usr/bin/chown myuser:myuser /var/run/mydaemon
Restart=on-abort
[Install]
WantedBy=multi-user.target
次に、このサービスを開始しました:
systemctl start mydaemon-helper
systemctl status mydaemon-helper
出力:
[[email protected] etc]# systemctl status mydaemon-helper.service
● mydaemon-helper.service - MyDaemon Helper Simple Service
Loaded: loaded (/etc/systemd/system/mydaemon-helper.service; disabled; vendor preset: disabled)
Active: inactive (dead)
May 28 20:53:50 alpha systemd[1]: Starting MyDaemon Helper Simple Service...
May 28 20:53:50 alpha systemd[1]: Started MyDaemon Helper Simple Service.
最後に、起動時にロードするようにシステムに指示しました:
systemctl enable mydaemon-helper