
systemd-timersを提供するようにスケジュールされたサービスプロセスが正常に実行されたことを確認しようとしています。呼び出された予約サービスがあり、certbot.service
使用していることがわかりますsystemctl list-timers
。このサービスの定義はどこにありますか?サービスが最終的にどのプロセスをトリガーしたかをどのように確認できますか?
答え1
これを使用すると、アクティブなユニットsystemctl list-timers
が*.timer
一覧表示されます。
例:
stew ~ $ systemctl list-timers
NEXT LEFT LAST PASSED UNIT ACTIVATES
Wed 2021-09-08 10:32:20 CEST 46min left Wed 2021-09-08 09:32:47 CEST 13min ago anacron.timer anacron.service
Wed 2021-09-08 10:58:47 CEST 1h 12min left Wed 2021-09-08 04:35:18 CEST 5h 10min ago apt-daily.timer apt-daily.service
Wed 2021-09-08 13:28:09 CEST 3h 41min left Tue 2021-09-07 13:28:09 CEST 20h ago systemd-tmpfiles-clean.timer systemd-tmpfiles-clean.service
Wed 2021-09-08 15:40:34 CEST 5h 54min left Wed 2021-09-08 05:01:01 CEST 4h 45min ago fwupd-refresh.timer fwupd-refresh.service
Thu 2021-09-09 00:00:00 CEST 14h left Wed 2021-09-08 00:00:01 CEST 9h ago atop-rotate.timer atop-rotate.service
Thu 2021-09-09 00:00:00 CEST 14h left Wed 2021-09-08 00:00:01 CEST 9h ago exim4-base.timer exim4-base.service
Thu 2021-09-09 00:00:00 CEST 14h left Wed 2021-09-08 00:00:01 CEST 9h ago logrotate.timer logrotate.service
Thu 2021-09-09 00:00:00 CEST 14h left Wed 2021-09-08 00:00:01 CEST 9h ago man-db.timer man-db.service
Thu 2021-09-09 06:20:05 CEST 20h left Wed 2021-09-08 06:01:22 CEST 3h 44min ago apt-daily-upgrade.timer apt-daily-upgrade.service
Sun 2021-09-12 03:10:53 CEST 3 days left Sun 2021-09-05 03:10:52 CEST 3 days ago e2scrub_all.timer e2scrub_all.service
10 timers listed.
Pass --all to see loaded but inactive timers, too.
UNIT
列には、リストされてanacron.timer
いる実際のタイマーであるタイマー単位(例)が表示されます。タイマーが作動すると、他のユニットが作動します。単位は*.timer
ファイルに割り当てるか、タイマーと名前は同じですが、拡張子を持つサービスUnit=anacron.service
としてデフォルト設定できます。.service
このACTIVATES
列はまさにその点を示しています。
*.timer
どこで設定する必要があるかを知りたい場合は、以下を使用してくださいsystemctl cat <unit>
。
stew ~ $ systemctl cat anacron.timer
# /lib/systemd/system/anacron.timer
[Unit]
Description=Trigger anacron every hour
[Timer]
OnCalendar=*-*-* 07..23:30
RandomizedDelaySec=5m
Persistent=true
[Install]
WantedBy=timers.target
ここで特に便利なのは、ファイル名を教えてくれることです。訪問がある場合は、その内容が一覧表示されます。
あなたの場合、サービスによって引き起こされるプロセスに特に興味があります。 systemctl cat <unit>
また、あなたを助けることができます。続行すると、anacron.service
次のようになります。
stew ~ $ systemctl cat anacron.service
# /lib/systemd/system/anacron.service
...
[Service]
EnvironmentFile=/etc/default/anacron
ExecStart=/usr/sbin/anacron -d -q $ANACRON_ARGS
...
ExecStart=
この行には、サービスを開始するために実行されたコマンドが表示されます。
現在の状態に興味がある場合は、次のコマンドを使用して表示することもできますsystemctl status <unit>
。
stew ~ $ systemctl status anacron.service
● anacron.service - Run anacron jobs
...
Active: inactive (dead) since Wed 2021-09-08 09:32:47 CEST; 23min ago
TriggeredBy: ● anacron.timer
Process: 480643 ExecStart=/usr/sbin/anacron -d -q $ANACRON_ARGS (code=exited, status=0/SUCCESS)
Main PID: 480643 (code=exited, status=0/SUCCESS)
...
ExecStart=
サービスが最後に完了した時刻、使用されたコマンド、PID、および終了コードを確認できます。