pkill -KILL -u
Schickt es einfach SIGKILL an jedes Kind von init -user? und stellt es sicher, dass jeder Kindprozess sicher getötet wird?
Es sendet SIGKILL an alle Prozesse des Kontos, unabhängig von seinem übergeordneten Element. (Beachten Sie, dass "init --user" etwas distospezifisch ist.)
Es ist jedoch so weit von "sicher" wie Sie können. SIGKILL ist der Brute-Force-Ansatz, der alle Prozesse beendet, ohne dass sie ordnungsgemäß heruntergefahren und aufgeräumt 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 angehalten werden. Nur dann, wenn Sie nach SIGHUP und SIGTERM noch Reste haben, sollten Sie SIGKILL als endgültigen Ansatz verwenden.
- Kann es mit Sendesignalen gemacht werden?
Möglicherweise verstehen die meisten Programme SIGHUP oder SIGTERM. Grafische Programme werden jedoch möglicherweise lieber vom Sitzungsmanager angehalten, dh von gnome-session mit ICE / XSMP (ich weiß nicht, wie das genau funktioniert). Im Allgemeinen besteht der "sicherste" Ansatz darin, den Abmeldebefehl der Desktop-Umgebung zu verwenden. 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