Создание deamon для выполнения .sh

Я играл вокруг с ним на некоторое время, но довольно застреваю с созданием сервиса для запущения скрипта. Скрипт, который я пытаюсь запустить, следующие.

#!/bin/sh
while true

do

sudo bbb-record --rebuildall

sleep 300
done

Я пытался создать демона для этого для выполнения как:

[Unit]
Description=bbb-rebuild
[Service]
ExecStart=/home/sysadmin/rebuild
Restart=always

[Install]
WantedBy=multi-user.target 

exit=0 

Я получаю сообщение об ошибке

==== AUTHENTICATION COMPLETE ===
Failed to start rebuild.service: Unit rebuild.service is not loaded properly: Invalid argument.
See system logs and 'systemctl status rebuild.service' for details.

after checking status
Apr 22 16:46:55 bbb2 systemd[1]: rebuild.service: Unit entered failed state.
Apr 22 16:46:55 bbb2 systemd[1]: rebuild.service: Failed with result 'exit-code'.
Apr 22 16:46:55 bbb2 systemd[1]: rebuild.service: Service hold-off time over, scheduling restart.
Apr 22 16:46:55 bbb2 systemd[1]: Stopped bbb-rebuild.
Apr 22 16:46:55 bbb2 systemd[1]: rebuild.service: Start request repeated too quickly.
Apr 22 16:46:55 bbb2 systemd[1]: Failed to start bbb-rebuild.
Apr 22 16:46:55 bbb2 systemd[1]: rebuild.service: Unit entered failed state.
Apr 22 16:46:55 bbb2 systemd[1]: rebuild.service: Failed with result 'start-limit-hit'.
Apr 22 16:47:22 bbb2 systemd[1]: [/etc/systemd/system/rebuild.service:12] Missing '='.
1
задан 22 April 2020 в 19:30

1 ответ

Необходимо лучше использовать systemd-таймеры для достижения этого.

Создайте таймер, названный как Ваш systemd сервис rebuild.timer

# nano /etc/systemd/system/rebuild.timer

[Unit]
Description=Start script every hour

[Timer]
OnCalendar=hourly

[Install]
WantedBy=timers.target

Отредактируйте свой сценарий к следующему

#!/bin/sh
bbb-record --rebuildall

Удостоверьтесь, что Ваш сценарий выполним chmod +x /home/sysadmin/rebuild

Отредактируйте свой systemd сервис для удаления restart=always и exit 0

[Unit]
Description=bbb-rebuild

[Service]
ExecStart=/home/sysadmin/rebuild

[Install]
WantedBy=multi-user.target 

Затем просто включите свой systemd-таймер с systemctl enable rebuild.timer.
Затем проверьте, что с таймером включают systemctl status rebuild.timer.

0
ответ дан 25 April 2020 в 10:42

Другие вопросы по тегам:

Похожие вопросы: