je souhaiterais récupérer le code retour d'un script
lancé en arrière plan. Existe-t-il un moyen de faire ça sans
passer par un fichier ? (Je suis en ksh)
Exemple:
traitement_A.ksh &
traitement_B.ksh &
wait
# Si A ou B a planté, afficher un message d'erreur...
# Comment coder ça ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Laurent Wacrenier
Fred S écrit:
je souhaiterais récupérer le code retour d'un script lancé en arrière plan. Existe-t-il un moyen de faire ça sans passer par un fichier ? (Je suis en ksh)
Exemple:
traitement_A.ksh & traitement_B.ksh & wait
# Si A ou B a planté, afficher un message d'erreur... # Comment coder ça ?
(traitement_A.ksh || echo echec A >&2 ) & (traitement_B.ksh || echo echec B >&2 ) & wait
Fred S <r5tr@free.fr> écrit:
je souhaiterais récupérer le code retour d'un script
lancé en arrière plan. Existe-t-il un moyen de faire ça sans
passer par un fichier ? (Je suis en ksh)
Exemple:
traitement_A.ksh &
traitement_B.ksh &
wait
# Si A ou B a planté, afficher un message d'erreur...
# Comment coder ça ?
(traitement_A.ksh || echo echec A >&2 ) &
(traitement_B.ksh || echo echec B >&2 ) &
wait
je souhaiterais récupérer le code retour d'un script lancé en arrière plan. Existe-t-il un moyen de faire ça sans passer par un fichier ? (Je suis en ksh)
Exemple:
traitement_A.ksh & traitement_B.ksh & wait
# Si A ou B a planté, afficher un message d'erreur... # Comment coder ça ?
(traitement_A.ksh || echo echec A >&2 ) & (traitement_B.ksh || echo echec B >&2 ) & wait
David LE BOURGEOIS
Bonjour,
Bonsoir.
je souhaiterais récupérer le code retour d'un script lancé en arrière plan. Existe-t-il un moyen de faire ça sans passer par un fichier ? (Je suis en ksh)
Exemple:
traitement_A.ksh & traitement_B.ksh & wait
On peut utiliser ça :
commande & PID=$! wait $PID
# Si A ou B a planté, afficher un message d'erreur... # Comment coder ça ?
je souhaiterais récupérer le code retour d'un script
lancé en arrière plan. Existe-t-il un moyen de faire ça sans
passer par un fichier ? (Je suis en ksh)
Exemple:
traitement_A.ksh &
traitement_B.ksh &
wait
On peut utiliser ça :
commande & PID=$!
wait $PID
# Si A ou B a planté, afficher un message d'erreur...
# Comment coder ça ?
je souhaiterais récupérer le code retour d'un script lancé en arrière plan. Existe-t-il un moyen de faire ça sans passer par un fichier ? (Je suis en ksh)
Exemple:
traitement_A.ksh & traitement_B.ksh & wait
On peut utiliser ça :
commande & PID=$! wait $PID
# Si A ou B a planté, afficher un message d'erreur... # Comment coder ça ?
Question subsidiaire : si l'un des process (ici les sleep) se termine AVANT son wait, le process va rester dans la liste des process pour que le wait puisse quand même récuperer son code de sortie.
En mode interactif (sur la ligne de commande), ceci ne marche pas : wait se pleindra simplement de ce que le process attendu n'existe pas.
Question : A quelle niveau se fait la différence ? Et qui décide que les process terminés doivent attendre (zombis) dans un cas, être détruits dans l'autre ?
Question subsidiaire : si l'un des process (ici les sleep) se termine
AVANT son wait, le process va rester dans la liste des process pour que
le wait puisse quand même récuperer son code de sortie.
En mode interactif (sur la ligne de commande), ceci ne marche pas : wait
se pleindra simplement de ce que le process attendu n'existe pas.
Question : A quelle niveau se fait la différence ? Et qui décide que les
process terminés doivent attendre (zombis) dans un cas, être détruits
dans l'autre ?
Question subsidiaire : si l'un des process (ici les sleep) se termine AVANT son wait, le process va rester dans la liste des process pour que le wait puisse quand même récuperer son code de sortie.
En mode interactif (sur la ligne de commande), ceci ne marche pas : wait se pleindra simplement de ce que le process attendu n'existe pas.
Question : A quelle niveau se fait la différence ? Et qui décide que les process terminés doivent attendre (zombis) dans un cas, être détruits dans l'autre ?
Question subsidiaire : si l'un des process (ici les sleep) se termine AVANT son wait, le process va rester dans la liste des process pour que le wait puisse quand même récuperer son code de sortie.
En mode interactif (sur la ligne de commande), ceci ne marche pas : wait se pleindra simplement de ce que le process attendu n'existe pas.
$ { sleep 1 ; exit 3 ; } & PID=$! [1] 30140 $ [1] + exit 3 {; sleep 1; exit 3; } $ wait $PID wait: pid 30140 is not a child of this shell $ echo $? 3
Question subsidiaire : si l'un des process (ici les sleep) se termine
AVANT son wait, le process va rester dans la liste des process pour que
le wait puisse quand même récuperer son code de sortie.
En mode interactif (sur la ligne de commande), ceci ne marche pas : wait
se pleindra simplement de ce que le process attendu n'existe pas.
$ { sleep 1 ; exit 3 ; } & PID=$!
[1] 30140
$
[1] + exit 3 {; sleep 1; exit 3; }
$ wait $PID
wait: pid 30140 is not a child of this shell
$ echo $?
3
Question subsidiaire : si l'un des process (ici les sleep) se termine AVANT son wait, le process va rester dans la liste des process pour que le wait puisse quand même récuperer son code de sortie.
En mode interactif (sur la ligne de commande), ceci ne marche pas : wait se pleindra simplement de ce que le process attendu n'existe pas.
$ { sleep 1 ; exit 3 ; } & PID=$! [1] 30140 $ [1] + exit 3 {; sleep 1; exit 3; } $ wait $PID wait: pid 30140 is not a child of this shell $ echo $? 3