ฉันมีปัญหากับไฟล์ serviced นี้ (สั้นลง) systemd:
[Unit]
Description=control FOO daemon
After=syslog.target network.target
[Service]
Type=forking
User=FOOd
Group=FOO
ExecStartPre=/bin/mkdir -p /var/run/FOOd/
ExecStartPre=/bin/chown -R FOOd:FOO /var/run/FOOd/
ExecStart=/usr/local/bin/FOOd -P /var/run/FOOd/FOOd.pid
PIDFile=/var/run/FOOd/FOOd.pid
[Install]
WantedBy=multi-user.target
ให้อาหารเป็นชื่อผู้ใช้และFOO/usr/local/bin/FOOd
ชื่อกลุ่มซึ่งมีอยู่แล้วสำหรับภูตของฉัน
ฉันต้องสร้างไดเรกทอรี/var/run/FOOd/
ก่อนที่จะเริ่มกระบวนการภูตผ่าน/usr/local/bin/FOOd
# systemctl start FOOd.service
สิ่งนี้ล้มเหลวเนื่องจาก mkdir ไม่สามารถสร้างไดเรกทอรีได้เนื่องจากการอนุญาต:
...
Jun 03 16:18:49 PC0515546 mkdir[2469]: /bin/mkdir: cannot create directory /var/run/FOOd/: permission denied
Jun 03 16:18:49 PC0515546 systemd[1]: FOOd.service: control process exited, code=exited status=1
...
เหตุใด mkdir จึงล้มเหลวที่ ExecStartPre และฉันจะแก้ไขได้อย่างไร (และไม่ฉันไม่สามารถใช้ sudo สำหรับ mkdir ... )