別のPythonスクリプトから他の2つのPythonスクリプトを実行する必要があります。コマンドは次のようになります。
#python send.py
#python wait.py
これは、1分間スリープしてから再実行するループで発生します。
コマンドを実行して他のスクリプトを開始する前に、それらがまだ実行されていないことを確認する必要があります。
別のPythonスクリプトから他の2つのPythonスクリプトを実行する必要があります。コマンドは次のようになります。
#python send.py
#python wait.py
これは、1分間スリープしてから再実行するループで発生します。
コマンドを実行して他のスクリプトを開始する前に、それらがまだ実行されていないことを確認する必要があります。
subprocess.Popenを使用してそれを行うことができます。例:
import subprocess
command1 = subprocess.Popen(['command1', 'args1', 'arg2'])
command2 = subprocess.Popen(['command2', 'args1', 'arg2'])
出力を取得する必要がある場合は、次の手順を実行します。
command1.wait()
print command1.stdout
実行例:
sleep = subprocess.Popen(['sleep', '60'])
sleep.wait()
print sleep.stdout # sleep outputs nothing but...
print sleep.returncode # you get the exit value
import time
import commands
from subprocess import Popen
while True:
t_ph = commands.getstatusoutput('ps -eo pid,args | grep script1.py | grep -v service | grep -v init.d | grep -v grep | cut -c1-6')
t_fb = commands.getstatusoutput('ps -eo pid,args | grep script2.py | grep -v service | grep -v init.d | grep -v grep | cut -c1-6')
if t_ph[1] == '':
r_ph = Popen(["python", "script1.py"])
if t_fb[1] == '':
r_fb = Popen(["python", "script2.py"])
time.sleep(60)
また
import time
import commands
from subprocess import Popen
r_ph = False
r_fb = False
while True:
if r_ph == False:
r_ph = Popen(["python", "script1.py"])
else:
if r_ph.poll():
r_ph = Popen(["python", "script1.py"])
if r_fb == False:
r_fb = Popen(["python", "script2.py"])
else:
if r_fb.poll():
r_fb = Popen(["python", "script2.py"])
time.sleep(60)
これはもう少しうまく書くことができますが、うまくいきます