Supposons que j'exécute une commande dans une session shell, par exemple bash -c 'apt-get update && apt-get upgrade'
. 5 minutes plus tard, je décide de sortir pour une collation et je réalise que j'ai oublié d' ajouter une forme de mécanisme de notification pour savoir si la sortie a été un succès ou un échec.
Eh bien, qu'est-ce que je fais maintenant? Si seulement je pouvais interroger à partir d'un autre terminal l'état de sortie de cette autre commande (ou spécifiquement, ce PID), peut-être que je pourrais après tout afficher une sorte de pop-up. La question est donc: comment puis-je interroger l'état de sortie d'un processus déjà en cours d'exécution à partir d'un autre terminal?
En d'autres termes,
DONNÉ que j'ai un processus en cours dans le terminal A ET que son PID est connu
QUAND j'exécute une commande dans le terminal B
ALORS je devrais pouvoir savoir si le processus dans le terminal A se termine avec un état de sortie 0 ou un état de sortie> 1.
wait
pour obtenir le code d'un processus d'arrière-plan dans votre shell actuel, une fois celui-ci terminé, mais je n'ai rien trouvé qui permettrait d'interroger d'autres shells. Le simple fait de surveiller si un processus est toujours en cours d'exécution et de déclencher une alerte une fois qu'il est terminé est également trivial, mais ne pas trouver son code de sortie. La seule façon dont je pourrais penser serait de préparer votre shell PROMPT_COMMAND
pour stocker le dernier code de sortie dans un fichier temporaire ou un emplacement accessible similaire. Serait-ce une option?