Ubuntu
自動啟動的 .desktop 應用程序不會在註銷時退出
我正在關注Autostarting .desktop application at startup not working的答案,它執行良好。我正在啟動一個 python 腳本。該
.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
這是因為
KillUserProcesses
預設no
情況下在Ubuntu中。此設置使使用者完全註銷時不會終止使用者程序。要更改此行為以在使用者註銷時終止所有使用者程序,請設置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
會退出。