그놈 쉘을 사용하여 ArchLinux에서 정상적으로 종료 / 재부팅하려고합니다. 이제 종료를 요청하면 열려있는 파일을 정상적으로 닫고 저장하는 데 열려있는 프로그램 시간을주지 않고 즉시 종료됩니다. 결과적으로 Chrome (예 :)을 다시 시작할 때마다 세션이 올바르게 닫히지 않았다는 메시지 SIGTERM
가 나타 SIGKILL
납니다. 주어진 시간 초과. 그러나 나는 내 시스템에서 SIGKILL
즉시 전송 된 SIGTERM
것을 알았으며 이것이 우아한 프로그램 종료의 원인이라고 생각합니다.
전송하기 전에 시간 초과 를 옵션 으로 설정할 수 있다는 내용의 문서 를 찾았 습니다 . 또한 옵션으로 전송을 비활성화 할 수도 있습니다 . 그러나 해당 옵션을 구성 할 위치를 찾을 수 없습니다 ... 해당 옵션을 설정할 수있는 시스템 종료 / 재부팅 구성 파일이 있습니까?SIGKILL
TimeoutStopSec=
SIGKILL
SendSIGKILL=
편집하다:
나는 약간의 테스트를했고 두 가지 흥미로운 것을 발견했습니다.
- 이와 같이 크롬을 수동으로 닫으면
killall -SIGTERM chrome
다음에 다시 시작할 때 올바르게 닫히지 않았다고 불평하지 않습니다. 대신 이와 같이 닫으면killall -SIGKILL chrome
불평합니다. 이것은 크롬이 SIGTERM을 올바르게 처리하고 있음을 알려줍니다. - 종료 절차의 출력을 살펴보면 systemd prints
Sending SIGTERM...
다음에 즉시Sending SIGKILL...
아래 의견에 따르면 systemd는 프로세스 만 처리합니다. 제 경우에는 GDM입니다. 이것은 문제가 다음과 같을 수 있음을 나타냅니다.
- GDM이 하위 프로세스 (예 : Chrome)를 올바르게 닫지 않는 경우 (예 : SIGTERM을 전송하여)
- 또는 systemd가 GDM에 SIGKILL 메시지를 보내 자식을 올바르게 닫을 시간을주지 않습니다.
실제로 GDM이 자식을 닫는 방법을 확인 / 구성 할 수있는 방법이 있습니까?
systemd's
관리 - systemd
인 pid 1
- 그러나 이후 서브 쉘 및 원용하는 자식 프로세스에서의 래퍼 스크립트 중 크롬 임원. 그래도 zygotes
시스템이 올바르게 구성되어 있으면 시스템 을 종료하는 데 필요한 작업을 수행 합니다. 아치 위키에서 권장하는 크롬 용 임시 공간 솔루션 중 하나를 사용하고 있습니까?
gnome-session
입니다.