创建了某个进程(process1):
process1 = multiprocessing.Process(target=xx,args(xx,))
这个进程只会因为外界的某个'状态'改变而终止,请问如何实现?
1
kuro1 2017 年 11 月 27 日 signal
|
2
polythene 2017 年 11 月 27 日 Unix signal, FIFO pipe, socket
|
3
912305043 OP 感谢楼上两位,正在查资料,如果方便的话希望可以给个简单的 demo 阅读下..谢谢
|
4
oott123 2017 年 11 月 27 日 - 这个状态是在进程内部获取的还是在外部获取的?
- 获取这个状态后,是希望外部终止进程还是进程自动退出? |
5
seasstyle 2017 年 11 月 27 日 via iPhone
test 我是黑号了?
|
6
912305043 OP @oott123
- 这个状态是在进程内部获取的还是在外部获取的? :通过外部获取某个状态 - 获取这个状态后,是希望外部终止进程还是进程自动退出? :关于这点,我不太清楚两者区别,对我来讲只要进程被杀掉就好了,如果方便可以解释下吗? |
8
oott123 2017 年 11 月 27 日 那就简单了
if 外部状态: process1.terminate() 收工 |
13
912305043 OP @billwsy 第一次接触多线程 /多进程 编程,头很大,我明白你的意思,看了下 terminate()方法的介绍,最后还是要信号发送 SIGTERM,谢谢哈
|
14
912305043 OP @billwsy 大概是了解你第二个问题的意思了,果然还是要通过发送信号来终止,因为要在进程内获取"状态"来判断是否退出进程,外部的主程序只负责改变"状态",不关心这个进程,感谢,应该是只要如何实现了
|
15
kimmykuang 2017 年 11 月 27 日
kill -l 查下
|
16
billwsy 2017 年 11 月 27 日 via iPhone @912305043 SIGTERM 默认的行为是结束程序,所以如果你只是想暴力的结束进程的话并不需要另外做什么,不然的话你可以在收到 SIGTERM 或者其他信号例如 SIGINT 的时候保存 /清理数据
|
17
nosugar 2017 年 11 月 27 日
python3 多进程:处理指定个数任务,完成一个 count 一次,检测完成==总任务,后自动退出。
有需求可以看看: https://github.com/barrer/scan-helper/blob/master/scan_helper_png.py |