Debian
如何確保使用者程序在註銷時被殺死?
我在我的伺服器(以及所有 debian 衍生伺服器)上出現註銷問題,但不會殺死所有使用者程序。
我似乎理解這是出於工作站效率的原因(假設似乎是同一使用者將在此後不久登錄)。
例如,在一個非常受限的帳戶上,我得到:
mcon@cinderella:~$ pgrep --list-full -U gamer 3001599 /lib/systemd/systemd --user 3001600 (sd-pam) 3001615 /usr/bin/pipewire 3001616 /usr/bin/pipewire-media-session 3001624 /usr/bin/dbus-daemon --session --address=systemd: --nofork --nopidfile --systemd-activation --syslog-only 3001706 /usr/libexec/gvfsd 3001711 /usr/libexec/gvfsd-fuse /run/user/1002/gvfs -f 3001839 /usr/libexec/dconf-service 3001841 /usr/libexec/gvfs-udisks2-volume-monitor 3001852 /usr/libexec/gvfs-gphoto2-volume-monitor 3001860 /usr/libexec/gvfs-goa-volume-monitor 3001888 /usr/libexec/goa-daemon 3001906 /usr/libexec/goa-identity-service 3001908 /usr/libexec/gvfs-mtp-volume-monitor 3001915 /usr/libexec/gvfs-afc-volume-monitor 3002093 /usr/libexec/evolution-source-registry 3002108 /usr/libexec/gvfsd-trash --spawner :1.9 /org/gtk/gvfs/exec_spaw/0 3002112 /usr/libexec/xdg-desktop-portal 3002120 /usr/libexec/xdg-document-portal 3002124 /usr/libexec/xdg-permission-store 3002132 fusermount3 -o rw,nosuid,nodev,fsname=portal,auto_unmount,subtype=portal -- /run/user/1002/doc 3002150 /usr/libexec/evolution-calendar-factory 3002162 /usr/libexec/gvfsd-metadata 3002176 /usr/libexec/evolution-addressbook-factory 3002227 /usr/libexec/bluetooth/obexd 3002924 /usr/bin/python3 /usr/share/system-config-printer/applet.py 3827100 /usr/bin/gnome-keyring-daemon --start --foreground --components=secrets
gamer
這是在使用者註銷和其他使用者(包括我自己)使用系統之後花費了(很多)小時。我已經看到了這個問題,但這不適用於我的情況:我不想阻止使用者通過
nohup
or顯式啟動長時間執行的程序screen
,而只是殺死所有“無用”的系統任務。我嘗試設置
[Login]
->KillUserProcesses=yes
in/etc/systemd/logind.conf
但顯然沒有任何改變。請注意,對於曾經登錄的每個使用者,所有這些程序都保持活動狀態(當然,自上次重新啟動以來)。
我如何擺脫所有這些過程?真的需要執行一些
cron
腳本來殺死它們嗎?如果是這樣:我如何將“明確需要”的後台程序與系統垃圾分開?PS:我知道 StackExchange 政策是“每個 OP 一個問號”,但這些實際上是同一個問題的各個方面。
重新啟動或
sudo systemctl daemon-reexec
. daemon-reload 僅重新載入單元,因此它不起作用。