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

标签 python shell iteration sleep pid

我有一个需要几个小时才能完成的 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/

相关文章:

linux - Bash while 循环 `done' 语法错误意外标记

linux - 在 bash 中排序

javascript - 同一个 div 的多次迭代?

bash - 在 Bash 脚本中按格式排序字符串数组

java - Apache POI - JAVA - 遍历 excel 中的列

Python:最大递归深度错误

python - Django 数据存储 - SQL 或其他?

python - 使用 Python 在 Excel 中打印唯一的名字、姓氏、电话号码、电子邮件和地址详细信息列表

python - QLineEdit 设置标题大小写

python - 其他优于基于 TCL 的 Expect 的解决方案/语言?