Was ist der Unterschied zwischen Kill Process und End Process im Systemmonitor?

14

Wenn ich einen Prozess über den Systemmonitor beenden möchte, werden zwei schnelle Methoden angezeigt: Prozess beenden und Prozess beenden. Was ist der Unterschied zwischen diesen beiden?

Luis Alvarado
quelle

Antworten:

9

Gemäß dem Systemmonitor-Handbuch sollten Sie normalerweise "Prozess beenden" verwenden und nur, wenn dies fehlschlägt, "Prozess beenden":

Normalerweise beenden Sie einen Prozess nur, wenn Sie den Prozess nicht wie unter So beenden Sie einen Prozess beschrieben normal beenden können.

Auf technischer Ebene denke ich, dass End Process ein SIGQUIT sendet, mit dem der Prozess bei Bedarf abfangen und bereinigen kann. Wenn dies jedoch fehlschlägt, sollte Kill Process ein SIGKILL senden, mit dem der Prozess gewaltsam abgebrochen wird, ohne dass eine Wiederherstellung möglich ist. Sparsam verwenden!

Roadmr
quelle
6
SIGTERM ist der "höfliche" Weg, ein Programm zu schließen, den "End Process" sendet. gnu.org/software/libc/manual/html_node/Termination-Signals.html
Rick
8

Ich war auch neugierig, also habe ich nur den Quellcode durchgesehen und das Folgende in application.cpp gefunden . Dieser Code enthält mehr, aber meiner Meinung nach korrelieren diese Optionen, zumindest für System Monitor 3.8.2.1 bis 3.19.3:

  • Prozess stoppen = SIGSTOP ( Pausensignal , lassen Sie uns später mit SIGCONT fortfahren, bricht den Prozess nicht ab)
  • End Process = SIGTERM ( Beendigungssignal , der richtige Weg, die Anwendung kann dieses Signal abfangen und Herunterfahraufgaben wie die Bereinigung von temporären Dateien veranlassen)
  • Kill Process = SIGKILL ( Kill-Signal , extrem, nur verwenden, wenn SIGTERM nicht funktioniert, keine Abschaltaufgaben veranlasst)

In dieser Quora-Frage zu SIGINT-, SIGTERM-, SIGKILL- und SIGSTOP-Signalen finden Sie eine gute Erklärung für alle Kill / Quit / Shutdown-Signale und ihre Unterschiede.

Quellcode-Highlight

Elijah Lynn
quelle