Systemd 覚書

困ったら見るページ

Git管理下などのservice, timerを有効化する

シンボリックリンクシンボリックリンク問題で四苦八苦していたがフルパスでenableすると使える。
systemd で symboliclink の service を enable する - Qiitaによると再起動後は動作しないとのことだったがUbuntu 20.04では今のところ問題ない。

sudo systemctl enable --now `realpath foo.service`
sudo systemctl enable `realpath bar.service`
sudo systemctl enable --now `realpath bar.timer`

Timer一覧

sudo systemctl list-timers --all

サービスのログを見る

sudo journalctl -u service

systemctl list-unitsなどに削除したユニットが残ったままの時

sudo systemctl reset-failed

その他

  • crontab代わりにタイマーを使うには.serviceと.timerの二つ必要なので/etc/cron.(hourly|daily|weekly)などと使い分ける
  • ユニットファイルの環境変数は展開されない
  • ユニットファイルを書き換えたらsudo systemctl daemon-reload
  • systemd --userはログインしていないと実行されないので用途が限られる