通过进程启动python脚本并保存PID
我有一个脚本,在满足某个条件时执行。我想启动另一个脚本来进行一些计算,它必须在另一个脚本中,并保存该过程的PID。 然后要检查另一种情况。当第二个条件满足时,我想终止我之前启动的脚本 有人能给我提些解决办法吗 例如: 脚本1.py 算算 main_script.py 如果[条件]: 在后台创建一个进程来调用Script1.py 保存该进程的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
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]