Suponha que eu execute um comando em uma sessão de shell, por exemplo bash -c 'apt-get update && apt-get upgrade'
. Cinco minutos depois, decido sair para um lanche e percebo que esqueci de adicionar algum tipo de mecanismo de notificação para saber se a saída foi bem-sucedida ou falha.
Bem, o que eu faço agora? Se ao menos eu pudesse consultar em outro terminal o status de saída desse outro comando (ou especificamente, esse PID), talvez eu pudesse exibir algum tipo de pop-up. Portanto, a pergunta é: como posso consultar o status de saída de um processo já em execução de outro terminal?
Em outras palavras,
Dado que eu tenho um processo em execução no terminal A E seu PID é conhecido
QUANDO executo algum comando no terminal B
ENTÃO, devo saber se o processo no terminal A termina com o status de saída 0 ou com o status de saída> 1.
wait
para obter o código de um processo em segundo plano no shell atual, após o término, mas não foi possível encontrar nada que permitisse consultar outros shells. Simplesmente monitorar se um processo ainda está em execução e emitir um alerta após a saída também é trivial novamente, mas não é possível descobrir seu código de saída. A única maneira que eu poderia pensar seria em preparar os shell PROMPT_COMMAND
para armazenar o último código de saída em um arquivo temporário ou local acessível semelhante. Isso seria uma opção?