Debian

如何確保使用者程序在註銷時被殺死?

  • May 3, 2022

我在我的伺服器(以及所有 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這是在使用者註銷和其他使用者(包括我自己)使用系統之後花費了(很多)小時。

我已經看到了這個問題,但這不適用於我的情況:我不想阻止使用者通過nohupor顯式啟動長時間執行的程序screen,而只是殺死所有“無用”的系統任務。

我嘗試設置[Login]-> KillUserProcesses=yesin/etc/systemd/logind.conf但顯然沒有任何改變。

請注意,對於曾經登錄的每個使用者,所有這些程序都保持活動狀態(當然,自上次重新啟動以來)。

我如何擺脫所有這些過程?真的需要執行一些cron腳本來殺死它們嗎?如果是這樣:我如何將“明確需要”的後台程序與系統垃圾分開?

PS:我知道 StackExchange 政策是“每個 OP 一個問號”,但這些實際上是同一個問題的各個方面。

重新啟動或sudo systemctl daemon-reexec. daemon-reload 僅重新載入單元,因此它不起作用。

引用自:https://unix.stackexchange.com/questions/701139