Jobs : Utilisation des jobs

From Deimos.fr / Bloc Notes Informatique
Jump to: navigation, search

1 Introduction

Les jobs permettent d'avoir plusieurs taches qui tournent en parallèle. L'avantage est de ne pas avoir à ouvrir plusieurs shell pour lancer plusieurs applications.

2 Utilisation

La commande jobs permet de savoir ce qu'il tourne exactement en tâche de fond :

Command jobs
[1]  + running    tail -f /var/log/syslog

Ici on voit qu'il y a un tail -f.

Si vous souhaitez lancer une commande pour qu'elle devienne un job (ce qui tourne actuellement), lancez la comme ceci :

Command
tail -f /var/log/syslog &

  • Si vous avez omis le symbole '&' à la fin de votre commande, pas de soucis, il existe un moyen d'arranger ça. Tapez 'Ctrl+Z' (^Z) afin de mettre en pause la commande actuelle, puis tapez 'bg' qui signifie background.
  • Vous pouvez vérifier donc l'état de votre commande avec la commande job. Ensuite, si vous voulez récupérer la commande que vous venez de mettre en background, utilisez simplement la commande fg qui signifie foreground.
  • Si vous souhaitez quitter votre shell, vous allez perdre tous vos jobs en cours. Pour ne pas que ça arrive, il faut lancer un nohup comme ceci :
Command nohup
nohup ma_commande &

Encore une fois, si vous êtes une tête de linotte, et que vous avez oublié le nohup, il y a une solution. Après avoir lancer votre commande, il faut donc faire :

  • Un Ctrl+Z (^Z)
  • Tapez : bg
  • Puis tapez : disown

Ceci va donc faire l'équivalent de la commande précédente.

  • Pour killer un job, par exemple le premier :
Command
kill %1

Pour voir ce qui se passe sur les processus en background :

Command lsof
lsof -p$!