Terminale OS X e Unix Ci sono lavori interrotti.

Gli utenti che tentano di uscire dalle sessioni del terminale sono spesso bloccati dalla segnalazione di lavori interrotti. Scoprire, riavviare e uccidere questi processi sono lezioni essenziali per gli utenti Mac e Unix.

Susan mi ha twittato il seguente ieri:

Dopo aver completato una delle tue esercitazioni di mac-recipe ieri, non sono riuscito a uscire dalla sessione del terminale in OS X. Il messaggio che "ci sono lavori interrotti" è apparso e mi ha impedito di uscire. Cosa ho fatto di sbagliato?

Non hai fatto niente di sbagliato. Questo messaggio ti informa che hai lasciato una programmazione in esecuzione in background mentre lavoravi nella shell. In genere, un programma viene inserito in background premendo il tasto di scelta rapida control-Z mentre la programmazione è in esecuzione.

Quando questo si verifica, il terminale nasconde il programma e ti avvisa con un comando come questo:

[3] + fermato in alto

Il [numero] è il numero di programmi attualmente in background. Il segno più indica che è il più recente a entrare in background. L'ultima parola è il programma che è stato effettivamente fermato. Nel mio esempio, ho usato control-Z per fermare il superiore applicazione.

comando di lavori

Per visualizzare un elenco di tutti i programmi in background, utilizzare lavori comando.

[1] Arrestato in alto
[2] Arrestato in alto
[3] - Arrestato in alto
[4] + telnet smarrito

Nel mio esempio sopra, puoi vedere che ho 4 applicazioni bloccate. io ho superiore sullo sfondo tre volte e uomo telnet una volta.

comando fg

Attraverso il terminale il fg il comando riporta l'ultimo programma in primo piano. Questa sarà l'applicazione contrassegnata con [+] tramite il lavori comando. Una volta che il programma è tornato in primo piano, puoi uscirne correttamente invece di fermarlo. Ad esempio, si uscirebbe completamente superiore o uomo premendo il tasto q chiave. Inoltre, control-c in genere uccide il programma rispetto a control-z che lo ferma.

Inoltre, è possibile passare a un programma bloccato specifico attraverso il numero del lavoro. Ad esempio, questo passerebbe al programma contrassegnato [2]:

fg% 2

uccidere il comando

Puoi anche fermare i programmi attraverso il uccidere comando. Per utilizzare il comando kill, avremo bisogno di accedere ai numeri ID di processo (PID) dei lavori arrestati usando il comando lavori -l comando:


[1] 833 Sospeso: 18 in alto
[3] - Sospeso 860: 18 in alto
[4] + 861 Sospeso: 18 anni telnet

Il -l Oltre al nostro lavori comando visualizza i PID. Questi sono i numeri che non sono tra parentesi. Questi sono 833, 860 e 861 nel nostro esempio sopra.

L'uso del comando kill con il PID di un programma terminerà l'applicazione. Se volessimo uccidere il uomo processo nel nostro esempio, useremo il seguente comando:


uccidi 861

Inoltre, come scorciatoia puoi uccidere tutti i programmi elencati tramite il comando jobs tramite il seguente codice:


uccidi "lavori -p"