我一直在寻找一种方法来启动和终止在python中长期运行的“批处理作业”.现在我正在使用“os.system()”在每个子进程中启动一个长时间运行的批处理作业.正如您可能已经猜到的那样,“os.system()”在子进程(孙子进程?)中产生了一个新进程,因此我不能从祖父进程中终止批处理作业.为我刚才描述的内容提供一些可视化:
Main (grandparent) process,with PID = AAAA
|
|------> child process with PID = BBBB
|
|------> os.system("some long-running batch file)
[grandchild process,with PID = CCCC]
所以,我的问题是我无法从祖父母那里杀死孙子的过程……
我的问题是,有没有办法在子进程中启动长时间运行的批处理作业,并且能够通过终止子进程来终止该批处理作业?
我可以使用os.system()的替代方法,以便从主进程中删除批处理作业?
谢谢 !!
来自文档:
The subprocess module allows you to
spawn new processes,connect to their
input/output/error pipes,and obtain
their return codes. This module
intends to replace several other,
older modules and functions,such as:os.system
os.spawn
os.popen
popen2
commands
所以…如果您使用的是Python 2.4,则子进程是os.system的替代品
要停止进程,请查看Popen对象的terminate()和communic()方法.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。