Linux: Wie funktioniert das Abmelden von Benutzern?

844
user590536

Ich bin neu bei Linux. Ich habe nach dem sicheren Abmelden anderer Benutzer gesucht und nur wenige Lösungen gefunden, aber ich möchte wissen, wie sie intern funktionieren. Ich habe ein paar Fragen:
1. pkill -KILL -u Schickt es einfach SIGKILL an jedes Kind von init --user? und stellt es sicher, dass jeder Kindprozess sicher getötet wird?
2. Kann man nur Signale senden?

PS Ich habe ein Programm, das init --user für andere Benutzer erstellt. Ich bringe mit SIGTERM um, aber manchmal stürzt Compiz ab. Darum bin ich interessant, wie es funktionieren sollte.

4

1 Antwort auf die Frage

3
grawity
  1. 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.

  1. 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 
Vielen Dank. Aber noch eine Frage bitte. Was ist der Unterschied zwischen gnome-session-quit und der Verwendung von `pkill -KILL - u ` user590536 vor 7 Jahren 0
"gnome-session-quit" sendet eine IPC-Nachricht an gnome-session, die zuerst die Abmeldung mit XSMP ankündigt, dann beendet und den Display-Manager den Xorg-Server herunterfahren lässt. grawity vor 7 Jahren 0
Danke vielmals. Noch eine bitte: D. Das Senden von SIGTERM an init --user kann also nicht mit dem Absturzproblem von compiz zusammenhängen. user590536 vor 7 Jahren 0
und welche wird verwendet, wenn sich linux normalerweise abmeldet? user590536 vor 7 Jahren 0