Comment envoyer des travaux en arrière-plan sans les arrêter?

10

Ctrl + z envoie le travail en cours à l'arrière-plan, mais l'arrête.

Et comment reprendre un travail arrêté?

Jader Dias
la source

Réponses:

17

vous pouvez exécuter "bg" pour l'exécuter en arrière-plan.

"fg" le déplace au premier plan

Notez que bg et fg acceptent les numéros de travail au lieu des PID, donc si vous avez plusieurs travaux en cours d'exécution à la fois, utilisez la commande "jobs" pour obtenir les numéros de travail.

Matt Simmons
la source
8

vous pouvez également démarrer un programme en tant que tâche d'arrière-plan avec un "&" sur la ligne de commande.

par exemple

monprogramme &

notez que la sortie (à la fois stdout et stderr) ira toujours au tty actuel, donc c'est généralement une bonne idée de rediriger vers / dev / null ou vers un fichier journal, comme ceci:

monprogramme> ~ / program.log 2> & 1 &

dans l'un ou l'autre exemple, c'est un travail d'arrière-plan comme les autres, vous pouvez donc le ramener au premier plan avec 'fg' (mais si vous avez redirigé la sortie, vous ne verrez pas grand-chose).

cas
la source
5

En bash, la saisie d'un "bg" met le travail en arrière-plan jusqu'à ce qu'il bloque la saisie. Il continuera à sortir vers STDERR et STDOUT, ce qui pourrait ne pas être utile. Vous pouvez saisir "fg" pour ramener le travail au premier plan.

[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 ~]$ 

Donc, cela commençait un long travail de copie et le suspendait, démarrait un deuxième long travail de copie et le suspendait, puis plaçait le premier travail de copie en arrière-plan et le laissait s'exécuter, suivi de la sortie du premier travail de copie. Ensuite, je mets le dernier travail de copie au premier plan et le laisse se terminer.

Evan Anderson
la source
bg 1et fg 1ne fonctionnent pas pour moi, mais bg %1et le fg %1font.
Alexej Magura
4

nohup task.sh &

S'exécute en arrière-plan, la sortie va à nohup.out dans le répertoire actuel. Continue de s'exécuter lorsque vous vous déconnectez.

Craig
la source
2

Une autre option est l'excellent utilitaire d' écran , qui peut être utilisé pour exécuter de nombreux processus en même temps, sans avoir à garder un terminal ouvert. Il permet également une interactivité beaucoup plus facile que bg et fg.

Foins
la source