我的服务器上有一个简单的 python 游戏脚本,它运行如下循环:
而 True : (( 监听数据包 )) (( 将数据包发送回所有连接的客户端 ))
我使用以下命令启动此脚本
./gameServer.py &
有时事情会变得很奇怪,我再次回到我的终端(PuTTy),但当我检查时脚本显然仍在运行ps
。
我试过了kill 3081
(其中 3081 是 gameServer.py 脚本的进程 ID)但它不会死。
我是否应该执行 kill -9?这会产生不良副作用吗?为什么它不会死?
我在 Linux 2.6.24 上,Ubuntu 版本。
答案1
kill -9 将停止脚本。一个简单的 kill 命令将等待脚本正常停止,这永远不会在无限循环中发生。
你应该实现一些异常捕获机制来处理脚本失败。或者更好的是 - 用它创建一个 TSR 服务,而不是在一个简单的循环中运行
答案2
这个问题可能属于 StackOverflow,因为它与编程的关系比与系统管理的关系更大。但是您的程序处理 SigInt 信号了吗?
https://stackoverflow.com/questions/1112343/how-do-i-capture-sigint-in-python