systemd .timerファイルが実行されているコマンドをどのように確認できますか?

systemd .timerファイルが実行されているコマンドをどのように確認できますか?

phpsessioncleanスケジュールを例にしてみましょう。 cron.dファイルは次のとおりです。

09,39 *     * * *     root   [ -x /usr/lib/php/sessionclean ] && if [ ! -d /run/systemd/system ]; then /usr/lib/php/sessionclean; fi

systemdがシステムにない場合は、スクリプトを実行するように求められます/usr/lib/php/sessionclean

systemd が存在すると実行されず、代わりに systemd タイマーが実行されます。ファイルphpsessionclean.timerは次のとおりです。

[Unit]
Description=Clean PHP session files every 30 mins

[Timer]
OnCalendar=*-*-* *:09,39:00
Persistent=true

[Install]
WantedBy=timers.target

独自の.timerファイルを生成し、実行中のスクリプトを含む関連する.serviceファイルを生成する方法について詳しく読んだが、この場合はcertbot、aptなどのパッケージにインストールされている他の.timerファイルと一緒に関連する.serviceファイルありません。それでは、このタイマーが実行されたときにどのコマンドが実行されるかをどのように推論できますか?

ベストアンサー1

間違った場所を探している可能性があります。デバイスは複数の場所に配置できます。

$ systemctl cat systemd-tmpfiles-clean.service
# /lib/systemd/system/systemd-tmpfiles-clean.service
...

(ここでコマンドを見ることもできます。

$ systemctl status systemd-tmpfiles-clean.service
● systemd-tmpfiles-clean.service - Cleanup of Temporary Directories
   Loaded: loaded (/lib/systemd/system/systemd-tmpfiles-clean.service; static)
   Active: inactive (dead) since Sun 2017-07-16 17:34:00 BST; 16h ago
     Docs: man:tmpfiles.d(5)
           man:systemd-tmpfiles(8)
  Process: 28580 ExecStart=/bin/systemd-tmpfiles --clean (code=exited, status=0/SUCCESS)
 Main PID: 28580 (code=exited, status=0/SUCCESS)

関連サービスを再確認するには:

$ systemctl show -p Unit systemd-tmpfiles-clean.timer
Unit=systemd-tmpfiles-clean.service

おすすめ記事