Solusi 1:
Ada dua alternatif agar systemd membuat direktori di bawah /var/run
/ /run
.
Biasanya yang paling mudah adalah mendeklarasikan RuntimeDirectory
dalam file unit layanan Anda. Contoh:
RuntimeDirectory=foo
Ini akan membuat /var/run/foo
untuk unit sistem. (Catatan:JANGAN berikan jalur lengkap, hanya jalur di bawah /var/run
) Untuk dokumen lengkap, silakan lihat entri yang sesuai di dokumen systemd.exec.
Untuk direktori runtime yang memerlukan konfigurasi yang lebih kompleks atau berbeda atau garansi seumur hidup, gunakan tmpfiles.d
dan minta paket Anda menjatuhkan file /usr/lib/tmpfiles.d/mydaemon.conf
:
#Type Path Mode UID GID Age Argument d /run/mydaemon 0755 myuser myuser - -
Lihat dokumen lengkap tmpfiles.d di sini.
Solusi 2:
Saya membuat layanan yang akan membuat direktori di awal:
vim /etc/systemd/system/mydaemon-helper.service
Isi dari /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
Kemudian saya memulai layanan ini:
systemctl start mydaemon-helper
systemctl status mydaemon-helper
Keluaran:
[[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.
Terakhir saya memberi tahu sistem untuk memuatnya saat startup:
systemctl enable mydaemon-helper