我们目前正在我们的 unix 环境中迁移到 SSH 和 Kerberos 身份验证方案。每当脚本中断、出现错误或脚本成功执行时,我都需要在我们所有的自动化 python 脚本中发出 Kerberos OS 命令。我知道在 bash 中您可以在退出时陷入陷阱,但根据我的研究,python 中没有该功能。我的尝试是使用 try/except/else 块并且可以工作,但不会捕获直接进程终止并发出命令。我绝不是 python 专家,所以有人知道更好的方法或要研究的函数吗?此外,这只适用于调用主函数的简单脚本,我的一些脚本是面向对象的并且更复杂,我的方法不起作用。这是我对一个简单循环的尝试。有什么建议吗?
def main():
while (True):
print "Interrupt Me..."
def watchForInterrupts(x):
#define function to issue kdestroy command
def issueKdestroy():
import os
os.system("kdestroy -q")
print "issued kdestroy"
try:
x()
except:
print "interrupted, issuing kdestroy"
#call issueKdestroy function if interrupted
issueKdestroy()
#else block to issue kdestroy if script completed successfully
else:
print "executed successfully, issuing cleanup kdestroy"
issueKdestroy()
#call watchForInterrupts function with main passed as a parameter
watchForInterrupts(main)