Я выполнения процесса SSH так:Что происходит с моим процессом?
checkIn()
sshproc = subprocess.Popen([command], shell=True)
exit = os.waitpid(sshproc.pid, 0)[1]
checkOut()
Важно, что форма процесса checkIn()
и checkOut()
действия до и после этих строк кода. У меня есть тестовый пример, который включает в себя то, что я выхожу из сеанса SSH, закрывая окно терминала вручную. Конечно, моя программа работает некорректно и checkOut()
никогда не вызывается в этом случае. Может ли кто-нибудь дать мне указатель на то, что я могу найти, чтобы исправить эту ошибку?
Сообщите мне, если какая-либо другая информация будет полезна.
Спасибо!
Очень чистый модуль, но не решил проблему. Спасибо вам за публикацию! – sholsapp
@gnucom, если вам нужно обеспечить выполнение некоторого кода, когда ваш процесс завершается очень резко (в худшем случае, с помощью 'kill -9' ... или даже ошибки HW!), Вам необходимо по определению выполнить этот код в процессе _separate_ («демон») - «сторожевой таймер», который ничего не делает, кроме как ждать выхода из строя основного процесса и, если и когда это произойдет, запускает указанный код. Быть в другом процессе, конечно, означает архитектурные ограничения на то, что вы можете и чего не можете сделать, но (для достаточно резких завершений) это единственная игра в городе :-(. –
спасибо за дизайнерское предложение. Я думаю, это то, что я буду в конце концов, потому что 'kill -9' по сути является тестовым примером, с которым я застрял. – sholsapp