매뉴얼 페이지에서는 서비스 옵션을 systemd.service(5)
설명합니다 .Type
Type=
이 서비스 단위의 프로세스 시작 유형을 구성합니다.
simple
,forking
, 또는 중 하나입니다oneshot
.dbus
notify
idle
Type=
단순으로 설정된 경우(둘 다 지정되지 않은 경우BusName=
기본값ExecStart=
) 구성된 프로세스가ExecStart=
서비스의 기본 프로세스가 될 것으로 예상됩니다. 이 모드에서 프로세스가 시스템의 다른 프로세스에 기능을 제공하는 경우 데몬이 시작되기 전에 해당 통신 채널을 설치해야 합니다(예: 소켓 활성화를 통해 systemd에 의해 설정된 소켓).systemd는 후속 장치를 즉시 시작하기 때문입니다.
이것이 나에게 의미하는 바는 systemd가 여기서 이러한 단위를 병렬로 시작하지 않는다는 것입니다. 또한 여기:
로 설정하면
forking
구성된 프로세스가 시작의 일부로 호출될ExecStart=
것으로 예상됩니다.fork()
시작이 완료되고 모든 통신 채널이 설정되면 상위 프로세스가 종료될 것으로 예상됩니다. 하위 프로세스는 계속해서 기본 데몬으로 실행됩니다. 이는 전통적인 UNIX 데몬의 동작입니다. 이 설정을 사용하는 경우PIDFile=
systemd가 데몬의 기본 프로세스를 식별할 수 있도록 이 옵션도 사용하는 것이 좋습니다 .상위 프로세스가 종료되면 systemd는 계속해서 후속 유닛을 시작합니다.
즉, 이 매뉴얼 페이지에 따르면 systemd는 서비스 단위를 순차적으로 실행합니까? 그렇다면 systemd가 데몬을 활성화할 때 후속 장치를 활성화하기 전에 데몬을 기다리나요? 전혀 말이되지 않습니다.
Type
다른 부서의 시동 프로세스에 어떤 영향을 미치나요?