OS X und Unix-Terminal Es gibt gestoppte Jobs.

Benutzer, die versuchen, Terminalsitzungen zu beenden, werden häufig durch die Meldung angehaltener Jobs blockiert. Das Erkennen, Neustarten und Beenden dieser Prozesse sind wichtige Lehren für Mac- und Unix-Benutzer.

Susan hat mir gestern folgendes getwittert:

Nachdem ich gestern eines Ihrer Mac-Tech-Rezepte-Tutorials absolviert hatte, konnte ich mich nicht von meiner Terminalsitzung in OS X abmelden. Die Meldung "Es gibt angehaltene Jobs" wurde angezeigt und verhinderte das Beenden. Was habe ich falsch gemacht?

Du hast nichts falsch gemacht. Diese Meldung informiert Sie lediglich darüber, dass Sie während der Arbeit in der Shell eine Programmierung im Hintergrund ausgeführt haben. Normalerweise wird ein Programm durch Drücken der Tastenkombination Control-Z in den Hintergrund gestellt, während die Programmierung läuft.

In diesem Fall wird das Programm das Terminal ausblenden und Sie mit einem Befehl wie dem folgenden benachrichtigen:

[3] + Oberteil gestoppt

Die [Anzahl] ist die Anzahl der Programme, die sich aktuell im Hintergrund befinden. Das Pluszeichen zeigt an, dass es sich zuletzt um den Hintergrund handelt. Das letzte Wort ist das Programm, das tatsächlich angehalten wurde. In meinem Beispiel habe ich control-Z benutzt, um das zu stoppen oben Anwendung.

Jobs Befehl

Um eine Liste aller Hintergrundprogramme anzuzeigen, verwenden Sie die Arbeitsplätze Befehl.

[1] Oberteil gestoppt
[2] Oberteil gestoppt
[3] - Oberteil gestoppt
[4] + Telnet des gestoppten Mannes

In meinem obigen Beispiel können Sie sehen, dass ich 4 Anwendungen gestoppt habe. ich habe oben dreimal im Hintergrund und Mann Telnet Einmal.

fg Befehl

Durch das Terminal die fg Befehl bringt das letzte Programm wieder nach vorne. Dies ist die Anwendung, die mit der [+] über die gekennzeichnet ist Arbeitsplätze Befehl. Sobald sich das Programm wieder im Vordergrund befindet, können Sie es ordnungsgemäß beenden, anstatt es zu stoppen. Zum Beispiel würde man komplett beenden oben oder Mann durch Drücken der q Schlüssel. Zusätzlich beendet control-c normalerweise das Programm im Vergleich zu control-z, wodurch es angehalten wird.

Außerdem können Sie über die Auftragsnummer zu einem bestimmten gestoppten Programm wechseln. Zum Beispiel würde dies zu dem mit [2] markierten Programm wechseln:

fg% 2

Befehl töten

Sie können Programme auch über das Programm stoppen töten Befehl. Um den Befehl kill verwenden zu können, müssen wir auf die Prozess-ID-Nummern (PIDs) der gestoppten Jobs zugreifen, indem Sie die jobs -l Befehl:


[1] 833 ausgesetzt: 18 oben
[3] - 860 ausgesetzt: 18 oben
[4] + 861 Suspended: 18-Mann-Telnet

Das -l Neben unserem Arbeitsplätze Befehl zeigt die PIDs an. Dies sind die Zahlen, die nicht in Klammern stehen. Dies sind in unserem obigen Beispiel 833, 860 und 861.

Wenn Sie den Befehl kill mit der PID eines Programms verwenden, wird diese Anwendung beendet. Wenn wir das töten wollten Mann In unserem Beispiel würden wir den folgenden Befehl verwenden:


töte 861

Darüber hinaus können Sie als Verknüpfung alle durch den Befehl jobs aufgeführten Programme mit folgendem Code beenden:


töte 'jobs -p'