在另一个脚本终止后运行 python 脚本

NCL*_*NCL 3 python iteration shell sleep pid

我有一个需要几个小时才能完成的 python 脚本。我通常将其运行为:

python myscript.py arg1 arg2 ... argN 2> log.err > log.out &
Run Code Online (Sandbox Code Playgroud)

我想要一个 shell 脚本,它可以多次运行相同的 python 脚本(具有不同的参数)。仅当第一个脚本终止时,此脚本才必须启动第二个 python 脚本,依此类推。我认为我应该使用进程的 PID,并在一些 while 循环中迭代检查使用 sleep 的情况。有什么建议么?这些脚本是在远程计算机中执行的,因此我必须将它们放在后台,以保证即使在我注销时它们也能继续执行。

Tom*_*ech 5

不要将 python 的每次调用置于后台,而是使用一个脚本来逐一运行所有作业并将脚本置于后台。例如:

#!/bin/sh

python myscript.py arg1 arg2 ... argN 2> log.err > log.out
python myscript.py different_args
# etc.
Run Code Online (Sandbox Code Playgroud)

使脚本可执行 ( chmod +x script.sh) 并从 shell 中运行它,例如./script.sh &


也许您应该看看像 之类的工具screen,它可以让您的作业在您注销后继续运行。如果这样做screen ./script.sh,则分离 ( ctrl-a-d) 并注销,您的脚本将继续运行。然后您可以稍后重新登录并使用 重新连接screen -r