それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

systemd の タイマーは enable してもstart をしないと動かない

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