Supponiamo che io esegua un comando in una sessione di shell, per esempio bash -c 'apt-get update && apt-get upgrade'
. 5 minuti dopo decido di andare fuori a fare uno spuntino e mi rendo conto di aver dimenticato di aggiungere una qualche forma di meccanismo di notifica per sapere se l'uscita ha avuto esito positivo o negativo.
Bene, adesso cosa faccio? Se solo potessi interrogare da un altro terminale lo stato di uscita di quell'altro comando (o specificamente, quel PID), forse dopo tutto potrei visualizzare una sorta di pop-up. Quindi la domanda è: come posso interrogare lo stato di uscita di un processo già in esecuzione da un altro terminale?
In altre parole,
DATO che ho un processo in esecuzione nel terminale A AND il suo PID è noto
QUANDO eseguo un comando nel terminale B
POI dovrei essere in grado di sapere se il processo nel terminale A termina con lo stato di uscita 0 o lo stato di uscita> 1.
wait
per ottenere il codice di un processo in background nella shell corrente, dopo che è terminato, ma non sono riuscito a trovare nulla che consentirebbe di interrogare altre shell. Anche semplicemente monitorare se un processo è ancora in esecuzione e generare un avviso una volta uscito è di nuovo banale, ma non scoprire il suo codice di uscita. L'unico modo in cui mi viene in mente potrebbe essere la preparazione della shell PROMPT_COMMAND
per archiviare l'ultimo codice di uscita in un file temporaneo o in una posizione accessibile simile. Sarebbe un'opzione?