시스템 종료 스크립트의 시간 제한을 변경하는 방법은 무엇입니까?

시스템 종료 스크립트의 시간 제한을 변경하는 방법은 무엇입니까?

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중지 대상 으로 나만의 시스템 서비스를 만들 수 있나요 ? 파일 시스템이 읽기 전용으로 다시 마운트된 후(프로세스의 매우 늦은 단계) 이 스크립트를 실행하고 싶습니다.

관련 정보