Wenn sich ein Prozess schlecht verhält, möchten Sie ihn vielleicht manchmal beenden oder beenden. In diesem Beitrag werden wir einige Möglichkeiten zum Beenden eines Prozesses oder einer Anwendung sowohl von der Befehlszeile als auch von einer grafischen Oberfläche aus untersuchen, wobei gedit als Beispielanwendung verwendet wird.
Verwenden der Befehlszeile/Abschlusszeichen
Strg + C
Ein Problem beim Aufrufen von gedit
von der Kommandozeile (wenn Sie gedit &
nicht verwenden ) ist, dass die Eingabeaufforderung nicht freigegeben wird, sodass die Shell-Sitzung blockiert wird. In solchen Fällen ist Strg+C (die Strg-Taste in Kombination mit 'C') praktisch. Dadurch wird gedit
beendet und alle Arbeiten gehen verloren (es sei denn, die Datei wurde gespeichert). Strg+C sendet den SIGINT
Signal an gedit
. Dies ist ein Stoppsignal, dessen Standardaktion darin besteht, den Prozess zu beenden. Es weist die Shell an, gedit
zu stoppen und kehren Sie zur Hauptschleife zurück, und Sie erhalten die Eingabeaufforderung zurück.
$ gedit
^C
Strg + Z
Dies wird als Unterbrechungszeichen bezeichnet . Es sendet ein SIGTSTP
Signal zur Bearbeitung. Dies ist auch ein Stoppsignal, aber die Standardaktion ist nicht das Beenden, sondern das Anhalten des Prozesses.
Es wird gedit
stoppen (beenden/beenden). und den Shell-Prompt zurückgeben.
$ gedit
^Z
[1]+ Stopped gedit
$
Sobald der Prozess ausgesetzt wird (in diesem Fall gedit
), ist es nicht möglich, in gedit
zu schreiben oder irgendetwas zu tun . Im Hintergrund wird der Prozess zu einem Job . Dies kann durch die jobs
überprüft werden Befehl.
$ jobs
[1]+ Stopped gedit
Jobs
ermöglicht es Ihnen, mehrere Prozesse innerhalb einer einzigen Shell-Sitzung zu steuern. Sie können Jobs nach Bedarf anhalten, fortsetzen und in den Hintergrund oder Vordergrund verschieben.
Lassen Sie uns gedit
fortsetzen im Hintergrund und geben Sie eine Eingabeaufforderung frei, um andere Befehle auszuführen. Sie können dies mit dem bg
tun Befehl, gefolgt von der Job-ID (beachten Sie [1]
aus der Ausgabe von jobs
Oben. [1][code> ist die Job-ID).
$ bg 1
[1]+ gedit &
Dies ähnelt dem Starten von gedit
mit &,
:
$ gedit &
Mit Kill
töte
ermöglicht die Feinsteuerung von Signalen und ermöglicht es Ihnen, einen Prozess zu signalisieren, indem Sie entweder einen Signalnamen oder eine Signalnummer angeben, gefolgt von einer Prozess-ID oder PID.
Was ich an kill
mag ist, dass es auch mit Job-IDs arbeiten kann. Lassen Sie uns gedit
starten im Hintergrund mit gedit &
. Angenommen, ich habe eine Job-ID von gedit
aus den jobs
Befehl senden wir SIGINT
zu gedit
:
$ kill -s SIGINT %1
Beachten Sie, dass der Job-ID %
vorangestellt werden sollte , oder kill
wird es als PID betrachten.
töte
kann ohne explizite Angabe eines Signals funktionieren. In diesem Fall ist die Standardaktion das Senden von SIGTERM
, wodurch der Vorgang beendet wird. Führen Sie kill -l
aus um alle Signalnamen aufzulisten, und verwenden Sie den man kill
Befehl zum Lesen der Manpage.
Mit killall
Wenn Sie keine Job-ID oder PID angeben möchten, killall
lässt Sie einen Prozess nach Namen spezifizieren. Der einfachste Weg, gedit
zu beenden mit killall
ist:
$ killall gedit
Dadurch werden alle Prozesse mit dem Namen gedit
beendet . Wie kill
, das Standardsignal ist SIGTERM
. Es hat die Möglichkeit, die Groß-/Kleinschreibung mit -I
zu ignorieren :
$ gedit &
[1] 14852
$ killall -I GEDIT
[1]+ Terminated gedit
Um mehr über verschiedene Flags zu erfahren, die von killall
bereitgestellt werden (z. B. -u
, mit der Sie benutzereigene Prozesse beenden können) finden Sie in der Manpage (man killall
)
Mit xkill
Sind Sie jemals auf ein Problem gestoßen, bei dem ein Mediaplayer wie VLC ausgegraut oder hängen geblieben ist? Jetzt können Sie die PID finden und die Anwendung mit einem der oben aufgeführten Befehle beenden oder xkill
verwenden .
xkill
ermöglicht es Ihnen, ein Fenster mit einer Maus zu töten. Führen Sie einfach xkill
aus in einem Terminal, das den Mauszeiger in ein x ändern sollte oder ein kleines Totenkopf-Symbol. Klicken Sie auf x auf das Fenster, das Sie schließen möchten. Seien Sie vorsichtig mit xkill
, aber – wie die Manpage erklärt, kann es gefährlich sein. Sie wurden gewarnt!
Weitere Informationen finden Sie auf der Manpage jedes Befehls. Sie können auch Befehle wie pkill
erkunden und pgrep
.