Ⅰ. はじめに
タイトルの通り「systemdを利用して一定時間ごとに任意のコマンドを実行する方法」です。
Ⅱ. やり方
1. 一時的なスケジュールを作成する
# 「『5秒ごとに"echo hello"を実行するスケジュール』を『1秒後に開始する』」スケジュールを作成する # タイマー精度100ms systemd-run --unit=Hello --on-active=1s --on-unit-active=5s --timer-property=AccuracySec=100ms echo hello
2. 作成されたか確認する
systemctl list-timers
3. ログを確認する
journalctl -fu Hello
4. 一時的なスケジュールを削除する
systemctl stop Hello.timer
実行結果
$ journalctl -fu Hello Dec 13 10:16:03 localhost systemd[1]: Started /usr/bin/echo hello. Dec 13 10:16:03 localhost echo[1069]: hello Dec 13 10:16:03 localhost systemd[1]: Hello.service: Succeeded. Dec 13 10:16:08 localhost systemd[1]: Started /usr/bin/echo hello. Dec 13 10:16:08 localhost echo[1080]: hello Dec 13 10:16:08 localhost systemd[1]: Hello.service: Succeeded. Dec 13 10:16:13 localhost systemd[1]: Started /usr/bin/echo hello. Dec 13 10:16:13 localhost echo[1092]: hello Dec 13 10:16:13 localhost systemd[1]: Hello.service: Succeeded.
留意点
OSを再起動すると一時的なスケジュールが削除されます
恒久的な方法はこちら