systemd --user 서비스가 정상적으로 종료됩니까?

systemd --user 서비스가 정상적으로 종료됩니까?

내 사용자 계정에 로그인하면 systemd를 사용하여 일부 서비스가 시작됩니다. 예를 들면 다음과 같습니다.

systemctl --user enable foo.service

그러나 나는 일반적으로 X 세션을 갑자기 종료합니다. 즉, 전원 버튼을 눌러 시스템을 직접 부팅합니다(최소 데스크톱 환경이 있습니다). Systemd는 X를 죽이고 모든 하위 프로세스를 무덤으로 보냅니다.

--user이 경우 시스템은 foo 서비스를 정상적으로 종료합니까?

답변1

systemd --user라는 시스템 서비스로 실행됩니다 [email protected]. 템플릿 서비스입니다. 귀하의 인스턴스는 입니다 [email protected]. 숫자는 귀하의 사용자 ID( id -u)입니다.

시스템 종료 루틴은 [email protected]일반적인 신호를 사용하여 정지 신호를 보냅니다 SIGTERM. 이에 대한 응답으로 systemd --user프로세스는 각 사용자에게 서비스가 중지되었음을 알립니다. [*]

systemctl cat [email protected]사용자 서비스 제한 시간(유예 기간)을 120초 이상으로 설정하는 것은 별 의미가 없는 것이 좋습니다. 이후 모든 사용자 서비스는 SIGKILL메인 시스템(PID 1)에서 수신됩니다. SIGKILL즉시 치명적입니다.

이 파일의 설정에 대해 알아보려면 man systemd.kill및 을 참조하십시오 man systemd.service.


[*] 기술적으로 systemd --user응답은 SIGTERM사용자 장치를 활성화하는 것입니다 exit.target. 이것은 에서 언급되었습니다 man systemd. 자세한 내용은 exit.target:-) systemctl cat exit.target확인하라고 말씀드리겠습니다 man systemd.special.

관련 정보