私はしばらくそれをいじっていますが、スクリプトを実行するサービスの作成にかなりこだわっています。実行しようとしているスクリプトは次のとおりです。
#!/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 '='.
これを実現するには、 systemd-timers を使用することをお勧めします。
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
次に、systemctl enable rebuild.timer
を使用してsystemdタイマーを有効にします。
次に、タイマーがsystemctl status rebuild.timer
で有効になっていることを確認します。