sku*_*guy 5 python operating-system subprocess batch-file multiprocessing
我一直在寻找一种方法来启动和终止在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]
Run Code Online (Sandbox Code Playgroud)
所以,我的问题是我无法从祖父母那里杀死孙子的过程......
我的问题是,有没有办法在子进程中启动长时间运行的批处理作业,并且能够通过终止子进程来终止该批处理作业?我可以使用os.system()的替代方法,以便从主进程中删除批处理作业?
谢谢 !!
如果您使用的是 Posix 兼容系统(例如 Linux 或 OS X)并且子进程后无需运行 Python 代码,请使用os.execv. 一般来说,避免os.system并使用该subprocess模块。
| 归档时间: |
|
| 查看次数: |
1013 次 |
| 最近记录: |