Załóżmy na przykład, że uruchamiam polecenie w jednej sesji powłoki bash -c 'apt-get update && apt-get upgrade'
. 5 minut później postanawiam wyjść na przekąskę i zdaję sobie sprawę, że zapomniałem dodać mechanizmu powiadamiania o tym, czy wyjście było sukcesem, czy porażką.
Co mam teraz zrobić? Gdybym tylko mógł zapytać z innego terminala o status wyjścia tego innego polecenia (a konkretnie tego PID), może mógłbym mimo wszystko wyświetlić jakieś wyskakujące okienko. Pytanie brzmi: w jaki sposób mogę sprawdzić status wyjścia już uruchomionego procesu z innego terminala?
Innymi słowy,
PODAJĄC, że mam uruchomiony proces w terminalu A ORAZ jego PID jest znany
KIEDY wykonuję jakieś polecenie w terminalu B
Następnie powinienem wiedzieć, czy proces w terminalu A kończy się ze statusem wyjścia 0 lub statusem wyjścia> 1.
wait
aby uzyskać kod procesu działającego w tle w bieżącej powłoce po jej zakończeniu, ale nie mogłem znaleźć niczego, co pozwalałoby na zapytanie innych powłok. Samo monitorowanie, czy proces nadal działa i generowanie alertu po jego zakończeniu, jest znowu trywialne, ale nie znajduje kodu wyjścia. Jedyny sposób, jaki mogłem wymyślić, wymagałby przygotowania powłoki PROMPT_COMMAND
do przechowywania ostatniego kodu wyjścia w pliku tymczasowym lub w podobnej dostępnej lokalizacji. Czy to byłaby opcja?