Python 스크립트를 실행하는 서비스가 있습니다.
[Unit]
Description="Daily python service"
[Service]
WorkingDirectory=/home/ubuntu/python_project/
ExecStartPre=/bin/bash -c 'truncate -s 0 /var/log/project.log /var/log/project_error.log'
ExecStart=/home/ubuntu/.conda/envs/test/bin/python -u main.py
StandardOutput=append:/var/log/project.log
StandardError=append:/var/log/project_error.log
[Install]
WantedBy=multi-user.target
매일 특정 시간에 실행하고 싶습니다.
[Unit]
Description=Run service daily
[Timer]
OnCalendar=*-*-* 12:00:00
Persistent=true
[Install]
WantedBy=timers.target
데몬을 다시 로드하고 타이머를 활성화하고 타이머를 시작하면 첫날에 실행됩니다. 그러나 첫날 이후에는 서비스를 수동으로 중지하지 않는 한 자동으로 실행이 중지됩니다.
왜 이런 일이 발생합니까? 이 문제를 어떻게 해결할 수 있나요?
답변1
다음은 비슷한 작업을 수행하는 방법에 대한 예입니다. 이 예에서는 매시간 서비스를 호출하므로 필요에 따라 서비스를 조정합니다.
/etc/systemd/system/btrfsbk.service
[Unit]
Description=Create mirror of current state of all BTRFS snapshots
[Service]
Type=simple
ExecStart=/usr/local/sbin/btrfsbk
/etc/systemd/system/btrfsbk.timer
[Unit]
Description=Create mirror of current state of all BTRFS snapshots
[Timer]
Unit=btrfsbk.service
OnBootSec=15min
OnUnitActiveSec=60min
AccuracySec=1us
Persistent=True
[Install]
WantedBy=timers.target
내 .service 파일에는 [Install] 섹션이 없습니다. 이 기능은 타이머에 의해 활성화되므로 활성화할 필요가 없습니다.
다른 예를 보려면 다음을 확인하세요.퍼스트림서비스/타이머 파일.