Gestion d’un processus en arrière-plan Arrière-plan Processus:en arrière-plan
La commande wait permet
au shell d’attendre la terminaison d’un processus lancé en
arrière-plan.
Syntaxes
Attendre la terminaison du processus dont le PID est donné en
argument :
wait pid1
Attendre la terminaison de tous les processus lancés
en arrière-plan à partir du shell courant :
wait
Attendre la terminaison du processus dont le numéro
de job est donné en argument :
wait %job
Exemples
La commande find est
lancée en arrière-plan. Elle a pour PID 13415
:
$ find / -name passwd 1> /tmp/res 2> /dev/null&
[1] 13415
$ jobs
[1]+ Running find / -name passwd >/tmp/res 2>/dev/null &
Le shell s’endort en attendant la terminaison
du processus 13415 :
$ wait 13415 # ou wait %1
Le shell est réveillé lorsque
le processus 13415 est terminé :
[1]+ Exit 1 find / -name passwd >/tmp/res 2>/dev/null
$
Le PID de la dernière commande
lancée en arrière-plan est contenu dans la variable
spéciale $!.
Le script attendproc.sh lance
une sauvegarde en arrière-plan. Pendant que celle-ci se
déroule, le shell effectue d’autres actions. Puis il attend
la fin de la sauvegarde avant de lancer une vérification
de la bande :
$ nl attendproc.sh
1 #! /usr/bin/ksh
2 # Lancement d’une commande de sauvegarde en arriere-plan
3 find / | cpio -ocvB > /dev/rmt/0 ...