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 

ksh

bash

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...
Pour consulter la suite, découvrez le livre suivant :
couv_EI6PRO.png
60-signet.svg
En version papier
20-ecran_lettre.svg
En version numérique
41-logo_abonnement.svg
En illimité avec l'abonnement ENI
130-boutique.svg
Sur la boutique officielle ENI
Précédent
Analyse des options d'un script avec getopts
Suivant
Script d'archivage incrémental et transfert SFTP automatique