在另一个脚本结束后运行python脚本

2024-03-29 09:31:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个python脚本正在运行,这将需要很长时间。我想在第一次完成后立即运行另一个脚本。让bash程序按顺序运行脚本是没有用的,因为第一个脚本已经在运行

我曾考虑过使用os.nice()来降低第二个的优先级,但这似乎非常不够

在已经运行的Python脚本完成后,如何运行一些Python脚本

PS正在运行的脚本正在screen上运行,可能有多个screen打开


Tags: 程序脚本bash顺序osscreenpsnice
2条回答

您可以从第二个脚本导入代码,并在第一个脚本结束时运行它

我想到的第一件事是在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

提示:使用这种方法时,请记住在查找所需进程的grep之前使用grep -v grep,否则grep命令将在结果中自动计数

(请温柔一点,这是我第一次尝试在这里回答问题。)

相关问题 更多 >