로그아웃 시 자동 실행된 .desktop 애플리케이션이 종료되지 않습니다.

로그아웃 시 자동 실행된 .desktop 애플리케이션이 종료되지 않습니다.

내가 팔로우하는 답변시작 시 자동 시작 .desktop 응용 프로그램이 작동하지 않습니다., 잘 작동합니다. 파이썬 스크립트를 시작하고 있습니다. 응용 .desktop프로그램은 다음과 같습니다.

[Desktop Entry]
Type=Application
Name=Autostart Script
Exec=shutdown_notify.py
Icon=system-run

이것은 잘 작동합니다. 그러나 로그아웃했다가 로그인하면 스크립트의 첫 번째 인스턴스가 여전히 실행 중인 것을 볼 수 있습니다.

$ ps -C shutdown_notify.py
  PID TTY          TIME CMD
 4026 ?        00:00:01 shutdown_notify
25421 ?        00:00:00 shutdown_notify

로그아웃 시 스크립트가 종료되도록 하는 방법이 있습니까? 종료 논리를 추가해야 합니까?


logind.conf@binarysta의 요청에 따라 업데이트됨

$ grep -E 'KillUserProcesses|KillOnlyUsers|KillExcludeUsers' /etc/systemd/logind.conf
#KillUserProcesses=no
#KillOnlyUsers=
#KillExcludeUsers=root

업데이트, 두 개의 자동 시작 파일이 있습니다. 하나는 위의 Python 스크립트를 시작하고 다른 하나는 gnome-terminal다시 시작하면 다음이 표시됩니다.

$ ps aux | grep -E "gnome-terminal|shutdown_notify"
training  6495  0.9  0.1  84936 29360 ?        S    07:13   0:00 /usr/bin/python3 /usr/local/bin/shutdown_notify.py
training  6565  0.7  0.2 622880 34448 ?        Sl   07:13   0:00 /usr/lib/gnome-terminal/gnome-terminal-server
training  9647  0.0  0.0  13264  2564 pts/0    S+   07:13   0:00 grep --color=auto -E gnome-terminal|shutdown_notify

로그아웃하고 로그인하면 다음이 표시됩니다.

training  6495  0.1  0.1  85076 29360 ?        S    07:13   0:00 /usr/bin/python3 /usr/local/bin/shutdown_notify.py
training 19110  3.1  0.1  84936 29636 ?        S    07:15   0:00 /usr/bin/python3 /usr/local/bin/shutdown_notify.py
training 19141  2.3  0.2 696496 34584 ?        Sl   07:15   0:00 /usr/lib/gnome-terminal/gnome-terminal-server
training 19421  0.0  0.0  13264  2696 pts/0    S+   07:15   0:00 grep --color=auto -E gnome-terminal|shutdown_notify

답변1

그 이유는 KillUserProcesses기본적 no으로우분투. 이 설정을 사용하면 사용자가 완전히 로그오프할 때 사용자 프로세스가 종료되지 않습니다. 사용자가 로그오프할 때 모든 사용자 프로세스가 종료되도록 이 동작을 변경하려면 이를 설정하고 KillUserProcesses=yes다시 /etc/systemd/logind.conf로그인하십시오.

true현재 값( 변경된 값이어야 함)은 다음을 통해 확인할 수 있습니다.

busctl get-property org.freedesktop.login1 /org/freedesktop/login1 org.freedesktop.login1.Manager KillUserProcesses
b true

고쳐 쓰다

gnome-terminal(GUI 애플리케이션)과 프로세스 shutdown_notify.py의 차이점은 gnome-terminal-server프로세스가 실행 중인 다른 모든 X11 프로세스와 동일한 TTY에 바인딩된다는 것입니다. 로그아웃하면 데스크탑 환경과 윈도우 시스템(x11)이 종료되므로 gnome-terminal종료됩니다.

관련 정보