如何一个接一个地依次运行 20 - 30 个脚本,并在执行最后一个脚本后 - 再次运行第一个并每小时运行一次迭代?
我尝试使用 crontab 来实现它,但这是一种笨重的方法。我想保证每一刻只有一个脚本在运行。每个脚本的执行时间约为 1 分钟。
我为这样的目标编写了一个 bash 脚本,并认为使用 cron 每小时运行一次:
if ps ax | grep $0 | grep -v $$ | grep bash | grep -v grep
then
echo "The script is already running."
exit 1
else
python script1.py
python script2.py
python script3.py
...
python script30.py
fi
Run Code Online (Sandbox Code Playgroud)
但这是一个好方法吗?
小智 7
对@twaxter 的更正:
import subprocess
program_list = ['script1.py', 'script2.py']
for program in program_list:
subprocess.call(['python', program])
print("Finished:" + program)
Run Code Online (Sandbox Code Playgroud)
小智 6
从这个问题,我假设您只想在旧程序完成后运行下一个程序。
我建议使用subprocess.call,它只会在被调用的程序执行完毕后才返回到函数的调用。
这是一个例子。它将在 script1 完成后运行 script1,然后是 script2。
import subprocess
program_list = ['script1.py', 'script2.py']
for program in program_list:
subprocess.call(['python', 'program'])
print("Finished:" + program)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4293 次 |
| 最近记录: |