자주 종료되는 컴퓨터(예: 클래식 데스크톱 설정)에 대한 타이머 장치를 작성해야 합니다. 이 타이머 장치는 주기적으로 활성화해야 하지만 너무 자주(예: 매주, 매월) 활성화해서는 안 됩니다.
몇 가지 방법을 찾았지만 그 중 어느 것도 적합하지 않습니다.
매뉴얼 페이지에 따르면 구성된 시점이 과거인 경우
OnBootSec
및 지시문 만 활성화됩니다. 또한 정기적인 이벤트를 정의하기 위해 이러한 조합을 사용하는OnStartupSec
몇 가지 예도 발견했습니다 .OnActiveSec
문제는 기계가 시작될 때마다 타이머가 구성된 장치를 활성화한다는 것입니다. 일주일/한 달에 한 번 실행되도록 되어 있는 타이머가 있다면 너무 자주 실행되는 것입니다. 예: 내 로그가 하루에 세 번 회전되는 것을 원하지 않습니다!솔루션 및
OnCalendar
지침. 구성된 특정 시점(주로 자정, 시간 지정에서 시간을 생략하면 기본값은 00:00:00)에 머신의 전원이 꺼지면 다음 부팅 후에 타이머가 활성화되지 않습니다. 적어도 그것이 내가 얻은 것입니다. 맞아?
구성된 시간이 과거인 경우 다음 시작 후 캘린더 이벤트가 포함된 타이머가 즉시 활성화됩니까? 그렇지 않은 경우 이 동작을 수행할 수 있는 해결 방법이 있습니까?
답변1
이 기능은 이미구현systemd에서 사용됨(버전 >= 212)Persistent=
지시어를 사용하여 작업을 실행할 날짜/시간을 설정할 때 단위 파일을 삽입하기만 하면 됩니다 Persistent=true
.OnCalendar=
내구성 =
부울 매개변수를 사용합니다. true인 경우 서비스 단위가 마지막으로 트리거된 시간이 디스크에 저장됩니다. 타이머가 활성화되면 타이머가 비활성화된 동안 서비스 장치가 한 번 이상 트리거된 경우 서비스 장치가 즉시 트리거됩니다. 이는 시스템이 종료될 때 누락된 서비스 실행을 보충하는 데 유용합니다. 이 설정은 OnCalendar=로 구성된 타이머에만 유효합니다.
답변2
~에 따르면이것systemd-devel 메일링 리스트에서 이메일을 보내는 데 필요한 동작은 로드맵에 있으며 향후 추가될 예정입니다.