Einige Anwendungen erlauben nur eine laufende Instanz (wie Eclipse, wenn Sie denselben Arbeitsbereich verwenden möchten). Wenn ich mich also von einem anderen Ort aus anmelde, muss ich die Anwendung beenden, die geöffnet war, als ich mich zuvor von einem anderen Ort aus angemeldet habe.
Ich benutze immer den Befehl kill, um den laufenden Prozess abzubrechen. Wenn Sie jedoch einen Prozess beenden, werden möglicherweise einige Zustände nicht gespeichert, die für die zukünftige Verwendung nützlich sind. Wenn Sie es jedoch ordnungsgemäß "schließen", indem Sie beispielsweise auf die Schaltfläche "Schließen" klicken, werden die Status ordnungsgemäß gespeichert.
Gibt es eine Möglichkeit, eine Anwendung über die Befehlszeile ordnungsgemäß zu "schließen"? Ich weiß, dass dies von Anwendung zu Anwendung unterschiedlich sein kann. Seien wir also etwas allgemeiner: Wie sende ich ein Signal an eine andere laufende Anwendung, und dieses Signal funktioniert so, als ob wir auf die Schaltfläche "Schließen" in der oberen Leiste klicken?
quelle
Antworten:
Standardmäßig sendet der Befehl kill
SIGTERM
(Beendigungssignal) an den laufenden Prozess. Im Gegensatz zuSIGKILL
dem Prozess, bei dem der Prozess ohne Antwortmöglichkeit gewaltsamSIGTERM
abgebrochen wird , kann das Signal vom Prozess abgefangen werden, sodass es ordnungsgemäß beendet werden kann. Ob es tatsächlich ordnungsgemäß beendet wird oder nicht, hängt vollständig vom Prozess selbst ab. es kann sich genauso leicht selbst töten oder das Signal vollständig ignorieren.Sie können sicherstellen, dass Sie
SIGTERM
anstelle eines anderen Signals senden, indem Sie es in der Befehlszeile explizit angeben:quelle
kill
Befehl versucht ein ordnungsgemäßes Herunterfahren. Wenn die Anwendung in diesem Fall nicht sauber geschlossen wird, ist sie fehlerhaft. (Und die überwiegende Mehrheit der Anwendungen ist nicht kaputt.)kill -s TERM <firefox-pid>
, wird es nicht ordnungsgemäß heruntergefahren, und wenn ich es erneut starte, werden Sie gefragt, ob ich die abgestürzte Sitzung wiederherstellen möchte. : Seufzer:Beachten Sie, dass bei Verwendung von
pkill
anstelle vonkill
, um TERM anzugeben, die Syntax wie folgt lautet:pkill
ist wie töten, aber Sie können den Prozessnamen anstelle der ID verwenden.man pkill
quelle