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 jobs
comando incorporato in bash, probabilmente anche altre shell. Esempio:
user@mysystem:~$ jobs
[1] + Stopped python
user@mysystem:~$
È possibile riprendere un lavoro interrotto utilizzando il fg
comando 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 fg
da solo:
user@mysystem:~$ fg 1
python
A questo punto sei tornato nell'interprete Python e puoi uscire usando control-D.
Al contrario, è possibile kill
il 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 logout
comando 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-z
interrotti.