Un lavoro interrotto è uno che è stato temporaneamente messo in background e non è più in esecuzione, ma utilizza comunque risorse (ad es. Memoria di sistema). Poiché quel lavoro non è collegato al terminale corrente, non può produrre output e non riceve input dall'utente.
Puoi vedere i lavori che hai in esecuzione usando il jobscomando incorporato in bash, probabilmente anche altre shell. Esempio:
user@mysystem:~$ jobs
[1] + Stopped python
user@mysystem:~$
È possibile riprendere un lavoro interrotto utilizzando il fgcomando incorporato (in primo piano) bash. Se si dispone di più comandi che sono stati arrestati, è necessario specificare quale riprendere passando il numero di jobspec sulla riga di comando con fg. Se viene arrestato un solo programma, è possibile utilizzare fgda solo:
user@mysystem:~$ fg 1
python
A questo punto sei tornato nell'interprete Python e puoi uscire usando control-D.
Al contrario, è possibile killil comando con jobspec o PID. Per esempio:
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:~$
Per utilizzare jobspec, precedere il numero con il tasto percentuale (%):
user@mysystem:~$ kill %1
[1]+ Terminated python
Se si emette un comando di uscita con lavori interrotti, verrà visualizzato l'avviso visualizzato. I lavori verranno lasciati in esecuzione per sicurezza. Questo per assicurarti di essere consapevole che stai tentando di uccidere lavori che potresti aver dimenticato di aver smesso. La seconda volta che si utilizza il comando exit, i lavori vengono terminati e la shell viene chiusa. Ciò può causare problemi per alcuni programmi che non sono destinati a essere uccisi in questo modo.
In bash sembra che tu possa usare il logoutcomando che ucciderà i processi arrestati e uscirà. Ciò può causare risultati indesiderati.
Si noti inoltre che alcuni programmi potrebbero non uscire al termine in questo modo e il sistema potrebbe finire con molti processi orfani che utilizzano risorse se si prende l'abitudine di farlo.
Si noti che è possibile creare un processo in background che si interromperà se richiedono l'input dell'utente:
user@mysystem:~$ python &
[1] 19028
user@mysystem:~$ jobs
[1]+ Stopped python
È possibile riprendere e terminare questi lavori nello stesso modo in cui sono stati interrotti i lavori Ctrl-zinterrotti.