systemd-anacron 동작을 모방하는 타이머 장치


13

자주 사용하지 않는 컴퓨터 (예 : 클래식 데스크톱 설정)의 타이머 장치를 작성해야합니다. 이 타이머 장치는 정기적으로 활성화해야하지만 자주 (예 : 매주, 매월) 활성화되지는 않습니다.

나는 몇 가지 접근법을 찾았지만 모두 적합하지 않습니다.

  • 매뉴얼 페이지에 따르면 구성된 시점이 과거 일 경우 OnBootSecOnStartupSec지시문 만 활성화됩니다. OnActiveSec정기적 인 이벤트를 정의하기 위해 이들과의 조합을 사용하는 몇 가지 예를 찾았 습니다. 문제는 머신이 부팅 될 때마다 타이머가 구성된 장치를 활성화한다는 것입니다. 일주일에 한 번 실행 해야하는 타이머가있는 경우 너무 자주 발생합니다. 예를 들어, 로그를 하루에 세 번 회전시키고 싶지 않습니다.

  • OnCalendar지시문 이있는 솔루션 . 구성된 특정 시점에 머신의 전원이 꺼지면 (주로 자정 시간 지정 시간을 00:00:00으로 설정하기 때문에 자정) 다음 부팅 후 타이머가 활성화되지 않습니다. 적어도 내가 얻은 방법입니다. 맞습니까?

그래서 여기 질문은 온다 :
캘린더 이벤트와 타이머가 다음 시작 직후 활성화 설정된 시간이 지난 경우?
그렇지 않은 경우 : 이러한 동작을 얻는 해결 방법이 있습니까?


좋아, 나는 이것을 알고있다 . 아직도 갈 길입니까? 아니면 더 우아한 솔루션이 있습니까? 현재 상황을 개선 할 계획이 있습니까?
mmh

답변:


15

이 기능은 지시어를 사용하여 systemd (ver> = 212)에서 이미 구현Persistent= 되었으므로 지시어를 Persistent=true사용 OnCalendar=하여 작업을 실행할 날짜 / 시간을 설정하는 동안 장치 파일 에 삽입 하면됩니다.

지속적 =

부울 인수를 취합니다. true 인 경우 서비스 장치가 마지막으로 트리거 된 시간이 디스크에 저장됩니다. 타이머가 활성화되면 타이머가 비활성화 된 시간 동안 적어도 한 번 트리거 된 경우 서비스 장치가 즉시 트리거됩니다. 이것은 기계가 꺼져있을 때 누락 된 서비스 실행을 따라 잡는 데 유용합니다. 이 설정은 OnCalendar =로 구성된 타이머에만 영향을 미칩니다.


반대가 아니야? OP는 및를 모두 사용 OnBootSec하여 발생하는 추가 실행을 제거하는 방법을 묻습니다 OnActiveSec. Persistent다운으로 인해 하나 이상의 실행이 누락 된 경우 부팅시 한 번 실행하는 것입니까?
x-yuri

글쎄, 당신은 아마 이런 식으로 의미했다 .
x-yuri

0

systemd-devel 메일 링리스트에있는 이메일에 따르면 , 원하는 행동은 로드맵에 있으며 앞으로 추가 될 것입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.