通过进程启动python脚本并保存PID

通过进程启动python脚本并保存PID,python,python-2.7,Python,Python 2.7,我有一个脚本,在满足某个条件时执行。我想启动另一个脚本来进行一些计算,它必须在另一个脚本中,并保存该过程的PID。 然后要检查另一种情况。当第二个条件满足时,我想终止我之前启动的脚本 有人能给我提些解决办法吗 例如: 脚本1.py 算算 main_script.py 如果[条件]: 在后台创建一个进程来调用Script1.py 保存该进程的PID 如果[另一个条件]: 终止这个过程 请尝试以下代码: import os if [condition]: os.system('nohup

我有一个脚本,在满足某个条件时执行。我想启动另一个脚本来进行一些计算,它必须在另一个脚本中,并保存该过程的PID。 然后要检查另一种情况。当第二个条件满足时,我想终止我之前启动的脚本

有人能给我提些解决办法吗

例如:

脚本1.py 算算

main_script.py

如果[条件]:

在后台创建一个进程来调用Script1.py

保存该进程的PID

如果[另一个条件]:

终止这个过程

请尝试以下代码:

import os

if [condition]:
    os.system('nohup python script1.py &') #start another script in background

if [another condition]:
    pid = os.popen("ps aux | grep script1.py | awk '{print $2}'").readlines()[0] #call pid
    os.system('kill '+pid) #kill process
我正在使用python 2.7.12和Ubuntu 16.04,您可以使用该软件包。Popen返回实例进程,您可以保存它,然后在特定条件下终止它。例如:

if [condition to init]:
  process = subprocess.Popen("./stuff someargs")


if [condition to stop]:
  process.kill()

您可以使用kill或terminate,这取决于您试图完成的任务。有关详细信息,请查看子流程文档

这里有两个链接可能会有所帮助,还有。我忘了提到我正在使用windows,在windows中有一件事需要注意,当我尝试像这样执行脚本时:subprocess.Popen./stuff someargs它告诉我主模块没有加载,直到我像这样执行subprocess.Popen[python,myscript.py]