मैं इस (छोटा) 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/
डेमॉन प्रक्रिया शुरू करने से पहले मुझे निर्देशिका बनाने की आवश्यकता है । यह विफल हो जाता है, क्योंकि mkdir अनुमतियों के कारण निर्देशिका नहीं बना सकता है:/usr/local/bin/FOOd
# systemctl start FOOd.service
...
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
...
ExecStartPre पर mkdir क्यों विफल हो जाता है और मैं इसे कैसे ठीक कर सकता हूं? (और नहीं, मैं mkdir के लिए sudo का उपयोग नहीं कर सकता ...)