[英]Run python script after another script ends
我有一个 python 脚本正在运行,这需要很长时间。 我想在第一次完成后立即运行另一个脚本。 制作一个 bash 程序来顺序运行脚本是没有用的,因为第一个已经在运行。
我曾考虑过使用os.nice()
来降低第二个的优先级,但这似乎非常不够。
PS 正在运行的脚本正在一个screen
运行,并且可能会打开多个screen
。
您可以从第二个脚本导入代码,并在第一个脚本的末尾运行它。
我想到的第一件事是从 shell 脚本中运行两个 Python 程序,所以第二个在第一个结束时开始:
#!/bin/bash
python -m script1.py
python -m script2.py
如果第一个脚本已经在运行,或者在您的控制之外启动,您可以在循环中使用 ps 命令来检测它何时完成,然后启动第二个脚本:
#!/bin/bash
while [ 1 ]
do
cnt=`ps x | grep -v grep | grep -c script1.py`
if [[ "$cnt" -eq 0 ]]
then
break
fi
sleep 1
done
echo "Starting second program"
python -m script2.py
Tip: when using this approach, remember to use grep -v grep
before the grep that looks for the process you want, or your grep command will count itself in the results.
(请温柔;这是我第一次尝试在这里回答问题。)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.