CentOS 7 시스템이 종료되기 전에 실행하고 싶은 스크립트가 있습니다.이전 질문에서는 systemd를 사용하여 이 작업을 수행하는 프로세스를 자세히 설명합니다.. 기본적으로 실행하고 싶은 스크립트를 넣으면 /usr/lib/systemd/system-shutdown/
자동으로 실행됩니다.
이 방법은 작동하지만 스크립트에 시간(몇 분)이 걸릴 수 있습니다. 스크립트가 종료되고 시스템이 계속 정지된 후 90초의 시간 초과가 있는 것 같습니다. 이 시간 제한을 어떻게 변경할 수 있나요?
기반으로여기서 토론하세요DefaultTimeoutStartSec=infinity
, 설정 및 DefaultTimeoutStopSec=infinity
을 시도했지만 /etc/systemd/system.conf
원하는 효과가 없었습니다.
편집하다:
더 자세히 조사한 결과 이유를 찾았습니다. 종료 스크립트가 이런 방식으로 실행되면 바이너리에 의해 실행됩니다 systemd-shutdown
. 소스 코드는 다음과 같습니다.여기에서 찾을 수 있습니다. 특히 이 코드는 스크립트 실행을 담당합니다.
execute_directories(dirs, DEFAULT_TIMEOUT_USEC, NULL, NULL, arguments);
DEFAULT_TIMEOUT_USEC
정의는 basic/def.h
다음과 같습니다:
#define DEFAULT_TIMEOUT_USEC (90*USEC_PER_SEC)
따라서 하드코딩된 90초 제한이 있어 이 메커니즘이 내 요구에 쓸모 없게 되는 것 같습니다. 종료 시 스크립트를 실행하는 데 적합한 다른 방법이 있습니까? WantedBy
중지 대상 으로 나만의 시스템 서비스를 만들 수 있나요 ? 파일 시스템이 읽기 전용으로 다시 마운트된 후(프로세스의 매우 늦은 단계) 이 스크립트를 실행하고 싶습니다.