我有一个需要几个小时才能完成的 python 脚本。我通常将其运行为:
python myscript.py arg1 arg2 ... argN 2> log.err > log.out &
我想要一个 shell 脚本,它可以多次运行相同的 python 脚本(具有不同的参数)。仅当第一个脚本终止时,此脚本才必须启动第二个 python 脚本,依此类推。我认为我应该使用进程的 PID,并在一些 while 循环中迭代检查使用 sleep 的情况。有什么建议么?这些脚本是在远程计算机中执行的,因此我必须将它们放在后台,以保证即使在我注销时它们也能继续执行。
最佳答案
不要将 python 的每次调用都置于后台,而是使用一个脚本来逐一运行所有作业并将脚本置于后台。例如:
#!/bin/sh
python myscript.py arg1 arg2 ... argN 2> log.err > log.out
python myscript.py different_args
# etc.
使脚本可执行(chmod +x script.sh
)并从 shell 运行它,例如 ./script.sh &
也许您应该看看像 screen
这样的工具,它可以让您的作业在您注销后继续运行。如果执行 screen ./script.sh
,然后分离 (ctrl-a-d
) 并注销,您的脚本将继续运行。然后您可以稍后重新登录并使用 screen -r
重新连接。
关于python - 在另一个脚本终止后运行 python 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25107089/