Как узнать, какая команда выполняется файлом 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, содержащего сведения о скрипте, который вы используете, но в этом случае, а в случае других файлов .timer, установленных пакетами (например, certbot, apt и т. д.) нет связанных файлов .service. Итак, как я могу сделать вывод о том, какая команда будет выполняться при запуске этого таймера?

Вы можете искать не то место. Единицы могут быть в нескольких местах.

 $ 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