내 사용자 계정에 로그인하면 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
.