systemd でタイマーを作ってみたんですよ。タイマーが動かないので悩んでたんです。
systemd でタイマーを作って、enableして見たんだけど。動かないんですよ。
タイマーを作る手順
- service 作って
- timer 作って service を起動する
- start してチェック
- enable する。
という手順なんだけど、start コマンド実行が大事。 timer はstart しないと動かないとか盲点でした。
dig するだけのサービスを試しに laravel で作ってみて、それでタイマーを動かすことに。
takuya@:~$ ln -sr laravel_checkip.service /etc/systemd/system/ takuya@:~$ ln -sr laravel_checkip.timer /etc/systemd/system/
サービスファイルをチェックする。
takuya@:~$ sudo systemctl start laravel_checkip.service
サービスをenableにして、タイマーをenable にする。
takuya@:~$ sudo systemctl enable laravel_checkip.service takuya@:~$ sudo systemctl enable laravel_checkip.timer
状態を確認する。
タイマーはenable してもそのままでは動かない。
takuya@:~$ sudo systemctl list-timers --all NEXT LEFT LAST PASSED UNIT ACTIVATES n/a n/a n/a n/a laravel_checkip.timer laravel_checkip.service 8 timers listed.
start すると動き出す。
なんでかわからんけど start すると 動き出した。enable だけでいいと思ってたけど記憶違いだったらしい
takuya@:~$ sudo systemctl start laravel_checkip.timer
動き出した。
takuya@:~$ sudo systemctl list-timers --all NEXT LEFT LAST PASSED UNIT ACTIVATES Wed 2019-09-18 21:01:56 JST 56min left n/a n/a laravel_checkip.timer laravel_checkip.service 8 timers listed. takuya@:~$
systemd でタイマー作るときは start timer を忘れない。
SystemCtrlのタイマーを作るときは、この手順をする。
takuya@:~$ sudo systemctl enable laravel_checkip.service takuya@:~$ sudo systemctl enable laravel_checkip.timer takuya@:~$ sudo systemctl start laravel_checkip.timer