Мне нужно создать сервис systemd, чтобы автоматически запустить некоторый owfs-daemon.
Я могу вручную запустить демон с помощью sudo /opt/owfs/bin/owfs --i2c=ALL:ALL --allow_other /mnt/1wire/
. Тогда есть папки и файлы с разными температурами, созданные в /mnt/1wire
. Невозможно запустить демон owfs от имени обычного пользователя.
Теперь я попытался создать какой-нибудь сервис systemd для его автоматического запуска (см. Следующий код).
[Unit]
Description=1-wire service
After=syslog.target
After=network.target
[Service]
Type=simple
ExecStart=/opt/owfs/bin/owfs --i2c=ALL:ALL --allow_other /mnt/1wire/
# Give a reasonable amount of time for the server to start up/shut down
TimeoutSec=300
[Install]
WantedBy=multi-user.target
Я установил службу, и я также могу запустить ее с помощью sudo systemctl start owfs.service
. Но в /mnt/1wire
нет файлов, созданных. sudo systemctl status owfs.service
показывает следующий вывод.
● owfs.service - 1-wire service
Loaded: loaded (/lib/systemd/system/owfs.service; enabled)
Active: inactive (dead) since Sat 2016-02-27 13:11:13 UTC; 20s ago
Process: 1025 ExecStart=/usr/local/bin/temperature/owfs.sh (code=exited, status=0/SUCCESS)
Main PID: 1025 (code=exited, status=0/SUCCESS)
Feb 27 13:11:13 raspberrypi systemd[1]: Started 1-wire service.
Я думаю, что сервис не запущен от имени пользователя root. Какие изменения нужно внести в мой сервисный файл, чтобы правильно запустить owfs-daemon?
РЕДАКТИРОВАТЬ: Вот файл службы, который работает с owfs.
[Unit]
Description=1-wire service
[Service]
Type=forking
ExecStart=/opt/owfs/bin/owfs --i2c=ALL:ALL --allow_other /mnt/1wire/
# Give a reasonable amount of time for the server to start up/shut down
TimeoutSec=300