Cette page a été déplacée par une nouvelle version du script,

vous allez être redirigé automatiquement dans 30s vers la nouvelle adresse, pensez à mettre vos favoris à jour

148- Linux Job Control.
   02/10/2002

auteur:
toine
Rubrique: Linux, UNIX: utilisation, commandes
Public: tout utilisateur
contrib.

Notion de Job

La notion de job sous Linux (et autres variantes d'UNIX) est simplement un processus lancé par l'utilisateur depuis un shell donné. Chaque job se voit attribuer un numéro (job-id) en plus de son PID.
Un job peut être stoppé, placé en arrière plan, remis en avant plan.

Exemples de ce qu'on peut faire avec les jobs (environnement csh, bash...):

Exécuter les commandes suivantes pour lancer, suspendre et lister 3 jobs:

man bash
Ctrl+Z
man ls
Ctrl+Z
man man
Ctrl+Z
jobs
qui affichera:
[1]    Suspended                     man bash
[2]  - Suspended                     man ls
[3]  + Suspended                     man man

Le job-id est le nombre entre [] : respectivement 1, 2, 3 ici.

Le signe plus (+) indique le job le plus récent, et le signe moins (-), celui immédiatement précédent ce job.
Maintenant, entrer:

fg %1
pour relancer le premier job en avant plan, et taper la commande jobs pour lister à nouveau les jobs présents:
[1]  + Suspended                     man bash
[2]    Suspended                     man ls
[3]  - Suspended                     man man
L'ordre des jobs (signes + et -) a changé.

Pour tuer un job particulier:

  • taper : kill %job-id (exemple kill %1 pour tuer man bash dans l'exemple)
  • ou bien faire fg %job-id et arreter ensuite le job revenu en avant plan.

NB: lors de l'utilisation de la commande fg ou kill, le % sans job-id fait référence au job-id le plus récent (marqué du +)

Exécution de jobs en arrière plan.

On exécute une commande (job) en arrière plan soit :

  • en plaçant le signe & en fin de ligne de commande
    Exemple: xterm &
  • en relançant par la commande bg un job précédemment stoppé par ctrl-Z.

Pour illustrer ceci, lancer 2 xterm et les stopper par ctrl-Z:

xterm 
"ctrl-Z"
Suspended
xterm 
"ctrl-Z"
Suspended
Le résultat est que les 2 fenetres sont bien affichées mais non utilisables (car leurs PIDs sont suspendus) Lister les jobs, et relancer en arrière plan par bg la première, qui redevient alors utilisable:
$jobs
[1]  - Suspended                     xterm
[2]  + Suspended                     xterm
$bg %1
[1]    xterm &
$jobs
[1]    Running                       xterm
[2]  + Suspended                     xterm

sommaire site - http://tonioc.free.fr