Ctrl + z invia il lavoro corrente in background, ma lo interrompe.
E come riprendere un lavoro interrotto?
Ctrl + z invia il lavoro corrente in background, ma lo interrompe.
E come riprendere un lavoro interrotto?
Risposte:
puoi eseguire "bg" per eseguirlo in background.
"fg" lo sposta in primo piano
Nota che bg e fg accettano i lavori # invece dei PID, quindi se hai più lavori in esecuzione contemporaneamente, usa il comando "jobs" per ottenere i numeri dei lavori.
è inoltre possibile avviare un programma come processo in background con un "&" sulla riga di comando.
per esempio
myprogram &
nota che l'output (sia stdout che stderr) andrà comunque all'attuale tty, quindi è generalmente una buona idea reindirizzare a / dev / null o ad un file di registro, in questo modo:
myprogram> ~ / program.log 2> & 1 &
in entrambi gli esempi, è un lavoro in background come un altro, quindi puoi comunque riportarlo in primo piano con 'fg' (ma se hai reindirizzato l'output non vedrai molto).
In bash, l'inserimento di un "bg" mette il lavoro in background fino a quando non blocca l'input necessario. Continuerà a essere inviato a STDERR e STDOUT, il che potrebbe non essere utile. È possibile inserire "fg" per riportare il lavoro in primo piano.
[adjuster@mx02 ~]$ cp ~/crap/* ~/crap2
(Ctrl-Z)
[1]+ Stopped cp ~/crap ~/crap2
[adjuster@mx02 ~]$ cp ~/crap3/* ~/crap4
(Ctrl-Z)
[2]+ Stopped cp ~/crap3/* ~/crap
[adjuster@mx02 ~]$ jobs
[1]+ Stopped cp ~/crap ~/crap2
[2]+ Stopped cp ~/crap3/* ~/crap
[adjuster@mx02 ~]$ bg 1
[1]- cp ~/crap ~/crap2 &
[1]- Exit 1 cp ~/crap ~/crap2
[adjuster@mx02 ~]$ fg 2
[adjuster@mx02 ~]$
Quindi, quello stava iniziando un lungo lavoro di copia e sospendendolo, iniziando un secondo lungo lavoro di copia e sospendendolo, quindi mettendo il primo lavoro di copia in background e lasciandolo correre, seguito da quel primo lavoro di copia in uscita. Quindi ho messo l'ultimo lavoro di copia in primo piano e l'ho lasciato finire.
bg 1
efg 1
non lavorare per me, mabg %1
efg %1
farlo.