- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我需要一个替代方法来在线程函数内终止 python 脚本。我的意图是在客户端输入 0 时终止服务器...这是否不起作用,因为线程尚未终止?这是我的代码:
socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM);
print 'Socket created'
thử:
socket.bind((HOST, PORT))
except socket.error, message:
print 'Bind statement failed. ERROR: ' + str(message[0]) + ' Message: ' + message[1]
sys.exit()
print 'Socket Binding Successful'
socket.listen(10)
print 'Socket is currently listening'
def clientThread(connection):
trong khi 1:
data = connect.recv(1024)
thử:
quit = int(data)
except:
quit = 3
if quit == 0:
print 'Closing the connection and socket...'
connect.close()
socket.close()
sys.exit(); //Alternative needed here...
phá vỡ
reply = 'Ok....' + data
if not data:
phá vỡ
connect.sendall(reply)
while 1: #forever loop
connect, address = socket.accept()
print 'Just connected with ' + address[0] + ' : ' + str(address[1])
start_new_thread(clientThread, (connect,))
socket.close()
câu trả lời hay nhất
Vấn đề là sys.exit()
所做的只是引发 SystemExit
。由于这发生在工作线程中,因此效果是停止该线程(异常不会跨线程传播)。
您可以尝试通过您自己的某种机制或通过调用 thread.interrupt_main()
向主线程发出脚本需要终止的信号。 .
如需大锤式方法,请调用 os._exit()
.
关于python - 为什么方法 sys.exit()、exit()、raise SystemExit 不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13612434/
背景:我最初给出了 this fine gentleman's question 的答案。关于使用 threading 解决方案在程序中打开非阻塞交互式解释器。他注意到它有效,但对他来说表现不佳(可以
SystemExit 的行为与其他Exception 有何不同?我想我理解为什么提出适当的异常不会是好的原因。例如,您不希望发生这样奇怪的事情: begin exit rescue => e
在 Web 服务器上,我使用 Python3.6、带有 Gunicorn 和 Supervisor 的 Django。部署到服务器后,我开始收到来自 Sentry 的通知,如下所示: Message
根据 sys.exit 上的文档和 SystemExit , 看来 def sys.exit(return_value=None): # or return_value=0 raise Sy
我正在尝试以下列方式捕获 SystemExit 异常: try: raise SystemExit except Exception as exception: print "succ
我有要测试的代码: from random import randint class End(object): def __init__(self): s
我正在测试一个包含以下代码片段的 Python 模块。 r, w = os.pipe() pid = os.fork() if pid:
这是我的代码和错误信息,有人知道为什么会出现这样的异常吗?谢谢。 源代码, import sys import tensorflow as tf def main(argv): print 'in
def main(): try: print "hardfart" return 0 except: return 1 if __nam
我正在使用 unittest断言我的脚本引发了正确的 SystemExit 代码。 基于 http://docs.python.org/3.3/library/unittest.html#unitte
根据 pytest 文档,我可以断言发生了 SystemExit(),但我想做更多:我还想验证退出代码和任何消息。我尝试了下面的代码,但没有打印任何内容,而且我不确定我需要断言什么来证明我得到了正确的
isinstance(SystemExit(1,), Exception) 评估为 True,但此代码段打印 “caught by bare except SystemExit(1,)”。 try:
在 pytest 中断言 UserWarning 和 SystemExit 在我的应用程序中,我有一个函数,当提供错误的参数值时,将从 warnings 模块中引发一个 UserWarnings,然后
我在这里阅读了几个关于 SO 的线程和关于 SystemExit 异常的 python 文档。此线程无意重复,因为我没有在类似线程中找到答案。 是否同时调用 sys.exit() 和引发 System
我正在尝试从 IPython 运行我的 Flask 应用程序。但是,它失败并出现 SystemExit 错误。 from flask import Flask app = Flask(__name__
name = input('name? ') if len(name) == 0: print('error.\n') raise
我正在尝试从 IPython 运行我的 Flask 应用程序。但是,它因 SystemExit 错误而失败。 from flask import Flask app = Flask(__name__)
当我运行我的代码时,它显示在此段中发生了异常:SystemExit2 error at the options = parse.parse_args()。我可以知道这里出了什么问题吗? import
有些程序员使用sys.exit,有些程序员使用SystemExit。 有什么区别? 什么时候需要在函数中使用 SystemExit 或 sys.exit? 例子: ref = osgeo.ogr.Op
文档说调用 sys.exit() 会引发一个 SystemExit 异常,该异常可以在外部级别中捕获。我有一种情况,我想明确且毫无疑问地从测试用例内部退出,但是 unittest 模块捕获了 Syst
Tôi là một lập trình viên xuất sắc, rất giỏi!