尝试终止脚本时,控制台会话终止

时间:2015-07-01 17:01:58

标签: python exception putty

我正在尝试编写一个Python代码,用于检查网络交换机上的网络设置。期待错误,我已经包含'exit.sys()'命令,以防出现错误或不匹配的数据。但是,虽然我希望它终止并在脚本中引发异常,但它也会终止CLI会话(Putty)。什么是能够抛出异常并仅终止交换机上运行的脚本而不终止Putty的最佳命令?

if isc_port.endswith('g'):
    isc_port = isc_port[:-1]
elif isc_port.endswith('G'):
    sys.exit("The ISC port is also configured as an MLAG port. Please correct.")
    #return ELM

1 个答案:

答案 0 :(得分:0)

调用sys.exit()仅退出(python)进程。它不会(直接)影响putty或任何其他终端(xterm,gnome-terminal等)。

PuTTY在远程服务关闭连接时终止。通常,例如使用ssh或telnet,当通过登录运行的程序终止时,会发生这种情况。通常程序是一个shell(例如/ bin / sh,/ bin / bash等),在交互式运行时不会终止,直到你输入'exit'(或发送它EOF,通常是Ctrl-D)。当shell以非交互方式运行时,它通常会在它运行的命令终止时终止。

也许您在登录时使用python程序作为shell?在这种情况下,当您不想退出时不要退出。也许你有一个运行程序的shell脚本,然后在你登录时退出?如果是这样,请将该脚本更改为不退出。

另外,我经常看到PuTTY保持窗口打开,因此所有输出仍然是可见的,直到您确认网络连接丢失的通知为止。它是Windows DOS / cmd.exe窗口,我在它运行的程序终止时立即关闭。