Ein angehaltener Job ist ein Job, der vorübergehend in den Hintergrund gestellt wurde und nicht mehr ausgeführt wird, aber immer noch Ressourcen verbraucht (dh Systemspeicher). Da dieser Job nicht mit dem aktuellen Terminal verbunden ist, kann er keine Ausgabe produzieren und empfängt keine Eingaben vom Benutzer.
Sie können Jobs, die Sie ausgeführt haben, mit dem jobs
eingebauten Befehl in bash anzeigen, wahrscheinlich auch andere Shells. Beispiel:
user@mysystem:~$ jobs
[1] + Stopped python
user@mysystem:~$
Sie können einen angehaltenen Job mit dem integrierten fg
(Vordergrund-) Bash-Befehl fortsetzen. Wenn Sie mehrere gestoppte Befehle haben, müssen Sie angeben, welchen Sie fortsetzen möchten, indem Sie die Jobspezifikationsnummer in der Befehlszeile mit übergeben fg
. Wenn nur ein Programm gestoppt wird, können Sie fg
alleine verwenden:
user@mysystem:~$ fg 1
python
Zu diesem Zeitpunkt befinden Sie sich wieder im Python-Interpreter und können mit Control-D beenden.
Umgekehrt können Sie kill
den Befehl entweder mit der Jobspezifikation oder der PID ausführen. Zum Beispiel:
user@mysystem:~$ ps
PID TTY TIME CMD
16174 pts/3 00:00:00 bash
17781 pts/3 00:00:00 python
18276 pts/3 00:00:00 ps
user@mysystem:~$ kill 17781
[1]+ Killed python
user@mysystem:~$
Um die Jobspezifikation zu verwenden, stellen Sie der Zahl den Prozentschlüssel (%) voran:
user@mysystem:~$ kill %1
[1]+ Terminated python
Wenn Sie einen Beendigungsbefehl mit angehaltenen Jobs absetzen, wird die von Ihnen angezeigte Warnung ausgegeben. Die Jobs werden aus Sicherheitsgründen weiter ausgeführt. Damit stellen Sie sicher, dass Sie wissen, dass Sie versuchen, Jobs zu beenden, die Sie möglicherweise vergessen haben, dass Sie angehalten haben. Wenn Sie das zweite Mal den Befehl exit verwenden, werden die Jobs beendet und die Shell wird beendet. Dies kann bei einigen Programmen zu Problemen führen, die nicht auf diese Weise beendet werden sollen.
In bash können Sie anscheinend den logout
Befehl verwenden, der gestoppte Prozesse beendet und beendet. Dies kann zu unerwünschten Ergebnissen führen.
Beachten Sie auch, dass einige Programme möglicherweise nicht beendet werden, wenn sie auf diese Weise beendet werden, und dass Ihr System möglicherweise viele verwaiste Prozesse ausführt, die Ressourcen verbrauchen, wenn Sie es sich zur Gewohnheit machen, dies zu tun.
Beachten Sie, dass Sie einen Hintergrundprozess erstellen können, der angehalten wird, wenn Benutzereingaben erforderlich sind:
user@mysystem:~$ python &
[1] 19028
user@mysystem:~$ jobs
[1]+ Stopped python
Sie können diese Jobs auf dieselbe Weise fortsetzen und beenden, wie Sie Jobs ausgeführt haben, die Sie mit dem Ctrl-z
Interrupt gestoppt haben .