我正在执行一个SSH进程,如下所示:
checkIn()
sshproc = subprocess.Popen([command], shell=True)
exit = os.waitpid(sshproc.pid, 0)[1]
checkOut()
重要的是进程在这些代码行之前和之后形成checkIn()
和checkOut()
操作。我有一个测试用例,它涉及通过手动关闭终端窗口来退出SSH会话。果然,我的程序没有正确运行,而且在这种情况下checkOut()
从未被调用。有没有人能给我一个指针,让我看看能不能修复这个bug?你知道吗
如果有其他有用的信息请告诉我。你知道吗
谢谢!你知道吗
也许你只需要一个
try ... finally
块?你知道吗除非系统崩溃,否则进程会收到
SIGKILL
,等等,应该调用checkOut()
。你知道吗Python进程通常与
ssh
子进程在同一个窗口中执行,因此在有机会执行checkOut
之前关闭该窗口时,它也会突然终止。要尝试并确保函数在程序退出时被调用(尽管对于足够突然的终止,这取决于您的操作系统,可能无法保证),请尝试Python标准库模块atexit。你知道吗相关问题 更多 >
编程相关推荐