[英]Python - How can a process be killed (not subprocess)
说我有类似的代码:
from multiprocessing import Process
def pro_a():
#execute some code that runs a radio program
def pro_b():
#execute some code that keeps a GUI running
.
.
. #some code
if __name__ == '__main__':
Process(target=pro_a).start()
Process(target=pro_b).start()
这些过程开始后如何结束? 我尝试过.end()、. quit()、. terminate(),每次命令窗口都说'Process'对象没有属性'...'(Linux)
在我的特定代码中,我正在以某个中心频率运行GNU无线电,然后希望我的GUI能够有一个按钮,当按下该按钮时,更新中心频率,然后关闭进程并重新运行它们,以便使用新的中心频率。
评论 :我需要从另一个进程中终止它。
您可以使用os.kill(...
os.kill(pid,sig)
将信号sig发送到进程pid。 主机平台上可用的特定信号的常量在信号模块中定义。
例如:
os.kill(p.pid, signal.SIGTERM)
注意 : 请注意文档中有关
kill
process
的警告。
Python»3.6.1文档multiprocessing.Process.terminate
如果以这种方式使用它,则会从.start()
获得返回值,即None
:
if __name__ == '__main__':
p =Process(target=pro_a).start()
例如,您必须这样做:
if __name__ == '__main__':
p= Process(target=pro_a)
p.start()
time.sleep(5)
p.terminate()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.