프로세스가 아직 실행 중이더라도 systemd 타이머를 실행하세요.

프로세스가 아직 실행 중이더라도 systemd 타이머를 실행하세요.

그것확인되었습니다이전 실행이 완료되지 않은 경우 systemd 타이머는 .service를 시작하지 않습니다. 그러나 알 수 없는 이유로 인해 Type=oneshot내 컴퓨터의 일부 백업 프로세스가 차단됩니다(여전히 활성 상태인 것으로 보이며 경쟁 조건일 수 있지만 관련이 없을 수 있음).

systemd 타이머가 실행되는 경우 OnCalendar=hourly이전 실행에서 발생한 일에 관계없이 매번 실행되도록 지시할 수 있는 방법이 있습니까? 이렇게 하면 백업이 실행되고 원하는 모든 항목이 실수로 중단되지 않습니다.

답변1

시스템 타이머가 OnCalendar=hourly로 실행되는 경우 이전 실행에서 발생한 일에 관계없이 매번 실행되도록 지시할 수 있는 방법이 있습니까? 이렇게 하면 백업이 실행되고 실수로 원하는 모든 항목이 중단되지 않습니다.

이러한 타이머는 실제로 작업을 수행하고 실행되지만, 활성화하려는 백업 서비스를 "다시 시작"하지 않습니다. 해당 서비스가 여전히 실행 중인 경우에도 여전히 "활성화됨" 또는 "활성" 트리거 상태를 갖기 때문입니다.

  • 이 동작이 올바른지 명확하게 하려면 다음을 수행하세요.
    1. 문제의 서비스가 이미 실행 중인 동안 실제로 동일한 서비스의 다른 인스턴스를 시작하면 어떻게 될까요?
      두 개의 백업 서비스를 동시에 실행하고 서로의 파일을 병렬로 덮어쓰는 것이 허용됩니까?
      아닌 것 같은데?
    2. 버튼 "A" 덕분에 전구가 이미 "켜져" 있을 때 버튼 "B"를 사용하여 전구를 "켜기"려고 하는 것입니다. 물론 아무 효과도 없습니다.

따라서... 타이머가 서비스를 "다시 시작"하도록 하려면 백업 서비스가 활성 상태를 잃기 전에 완료하는 데 1시간 미만이 걸리는지 확인하십시오. RuntimeMaxSec=man systemd.service설명을 참조하세요. 또는 백업에 시간이 더 걸리면 더 긴 타이머를 사용하세요. 절반 또는 불완전한 백업은 전혀 백업하지 않는 것과 같기 때문입니다. 그렇죠?

더 나은 답변을 드리기 위해 "Type=oneshot" 백업 서비스 파일의 내용을 게시해 주시면 도움이 될 것입니다. 어쨌든 변경이 필요하다고 생각하기 때문입니다.

관련 정보