我正在努力优化我的一些工作流程,想知道是否有人遇到过与我类似的问题。我一直在努力弄清楚如何同时启动多个“nohup”shell 脚本。例如,我有几个如下所示的脚本:
start.sh
rm nohup.out
nohup python -u script.py args
我试过用这样的脚本运行它们:
start_option_1.sh
process_directory_1/start.sh & process_directory_2/start.sh ... (3-5 more of these)
像这样:
start_option_2.sh
process_directory_1/start.sh && process_directory_2/start.sh ... (3-5 more of these)
但没有骰子......脚本甚至不会启动。任何想法/帮助将不胜感激!如果这也很重要,请使用 python3.6(但它似乎更像是一个 nohup 问题)。
最佳答案
使用“&”和使用“&&”有很大区别。第一个将在后台运行每个脚本。第二个将按顺序执行它们,只要每个脚本都返回成功(“exit 0”或等价物)。
从“start.sh”的上下文来看,您似乎想要第一个选项(一起启动所有脚本)。每个脚本都在执行一个 python 程序“script.py”。该帖子没有说明初始工作目录中是否有一个脚本,或者是否有多个“script.py”,每个文件夹中都有一个。可能是第二种选择。
如果是这种情况,您想从 process_directory_* 文件夹启动脚本。考虑更改:
( cd process_directory_1 && exec ./start.sh) &
( cd process_directory_2 && exec ./start.sh) &
...
注意事项:
- 同时启动所有脚本。
- 每个脚本在不同的文件夹中执行,以访问该文件夹中的 script.py。
- 每个作业都会在运行文件夹“nohup.log”中留下日志。
关于linux - 如何一次触发多个 nohup 脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58893824/