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

관련 정보