시스템 단위의 여러 ExecStartPre 재정의 파일입니다. systemd는 실행 순서를 보장합니까?

시스템 단위의 여러 ExecStartPre 재정의 파일입니다. systemd는 실행 순서를 보장합니까?

여러 소스를 보면 override conf 파일의 ExecStartPre가 기본 서비스 파일 다음에 순차적으로 실행되는 것으로 보입니다.

그러나 이것이 systemd 자체로 보장됩니까? 또한 ExecStartPre가 일종의 nohup이라면 어떻게 될까요? 아니면 장기간 실행되는 프로세스인가요?

답변1

바라보다 man systemd.unit:

유닛 파일 외에도 foo.service"insert" 디렉터리가 있을 수 있습니다. foo.service.d/접미사 " "가 있는 이 디렉터리의 모든 파일은 .conf영숫자 순서로 병합되고 기본 장치 파일 자체 다음에 구문 분석됩니다.

그리고man systemd.service:

ExecStartPre=,ExecStartPost=

의 명령 이전 또는 이후에 실행되는 추가 명령입니다 ExecStart=. 구문은 ExecStart=여러 명령줄이 허용된다는 점을 제외하고 for 와 동일합니다 .이 명령은 순차적으로 하나씩 실행됩니다..

[...]

ExecStartPre=장기 실행 프로세스를 시작하는 데는 사용할 수 없습니다 .ExecStartPre=via via라는 프로세스에 의해 생성된 모든 프로세스는 다음 서비스 프로세스를 실행하기 전에 종료됩니다.

만약에 참고하세요ExecStartPre=, ExecStart=또는 ExecStartPost=실패(그리고 접두사 " -"가 없는 경우, 위 참조) 또는서비스가 완전히 시작되기 전 시간 초과에서 지정된 명령을 계속 실행하고 ExecStopPost=명령을 건너뜁니다. ExecStop=[...]

그래서:

그러나 이것이 systemd 자체로 보장됩니까?

예.

또한 ExecStartPre가 일종의 nohup이라면 어떻게 될까요? 아니면 장기간 실행되는 프로세스인가요?

시간이 초과되면 종료되고 서비스는 계속됩니다 ExecStopPost.

관련 정보