pkill -KILL -u {username}
Sendet es nur SIGKILL an jedes Kind von init --user? und stellt es sicher, dass jeder untergeordnete Prozess sicher getötet wird?
Es sendet SIGKILL an alle Prozesse, die dem {username}
Konto gehören, unabhängig von ihrem übergeordneten Element. (Beachten Sie, dass "init --user" etwas distro-spezifisch ist.)
Es ist jedoch ungefähr so weit von "sicher", wie Sie gehen können. SIGKILL ist der Brute-Force-Ansatz, bei dem alle Prozesse beendet werden, ohne dass sie ordnungsgemäß heruntergefahren und bereinigt werden. es ist das Gegenteil von "sicher".
Viele Terminal-basierte Programme reagieren auf SIGHUP als "Line Hangup". Nach einigen Sekunden können die verbleibenden mit SIGTERM gestoppt werden. Nur dann, wenn Sie nach SIGHUP und SIGTERM noch Reste haben, sollten Sie SIGKILL als endgültigen Ansatz verwenden.
- Kann man damit Signale senden?
Möglicherweise verstehen die meisten Programme SIGHUP oder SIGTERM. Aber grafische Programme könnten es vorziehen, vom Sitzungsmanager , dh von gnome-session, unter Verwendung von ICE / XSMP angehalten zu werden (ich weiß nicht genau, wie das funktioniert). Im Allgemeinen ist der "sicherste" Ansatz die Verwendung des Abmeldebefehls der Desktop-Umgebung. zum Beispiel:
gnome-session-quit --logout --force --no-prompt
gnome-session-save --force-logout --silent
qdbus org.kde.ksmserver /KSMServer logout 0 -1 -1
qdbus org.razorqt.session /RazorSession logout
mate-session-save --logout
xfce4-session-logout --logout
pkill -KILL - u {username}
gnome-session-quit
sendet eine IPC-Nachricht an gnome-session, die zuerst die Abmeldung über XSMP ankündigt und dann beendet, sodass der Display-Manager den Xorg-Server herunterfährt.