簡體   English   中英

控制台會話在嘗試終止腳本時終止

[英]Console session terminates while trying to terminate script

我正在嘗試編寫一個 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

調用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 窗口在它運行的程序終止后立即關閉。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM