我正在制作一个python脚本(start.py)来运行多个(4)python脚本。 我的代码:
import subprocess
from time import sleep
y=(0.2)
sleep (y)
subprocess.Popen(["python", 'a1.py'])
sleep (y)
subprocess.Popen(["python", 'a2.py'])
sleep (y)
subprocess.Popen(["python", 'a3.py'])
sleep (y)
subprocess.Popen(["python", 'a4.py'])
当我运行start.py时,四个脚本按预期在后台运行,但每个脚本都有一个进程ID。 是否可以为所有人设置一个PID?
如何在启动时将start.py
作为服务运行? (我使用树莓派)。
答案 0 :(得分:3)
要在同一个解释器中内联运行Python脚本,您可以使用execfile
:
https://docs.python.org/2/library/functions.html#execfile
Python 3等价物:
What is an alternative to execfile in Python 3?
要将脚本作为后台服务启动,最好使用Linux systemd
或supervisord之类的外部工具来实现此目的。
答案 1 :(得分:-2)
你可以试试这段代码:
import subprocess
from time import sleep
import sys
y=(0.2)
sleep(y)
subprocess.Popen([sys.executable, 'a1.py'],stdin=subprocess.PIPE)
sleep(y)
subprocess.Popen([sys.executable, 'a2.py'],stdin=subprocess.PIPE)
sleep(y)
subprocess.Popen([sys.executable, 'a3.py'],stdin=subprocess.PIPE)
sleep(y)
subprocess.Popen([sys.executable, 'a4.py'],stdin=subprocess.PIPE)
我建议如果所有想法都好,那么逐个执行脚本然后你可以执行上面的程序