如何一次触发多个nohup脚本?

时间:2019-11-16 18:20:18

标签: linux bash shell terminal nohup

我正在优化我的某些工作流程,并且想知道是否有人遇到了与我类似的问题。我一直在努力找出如何同时启动多个“ 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问题)。

1 个答案:

答案 0 :(得分:3)

使用“&”和使用“ &&”之间有很大的区别。第一个将在后台运行每个脚本。第二个脚本将按顺序执行它们,只要每个脚本都将返回成功(“ 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) &
...

注意:

  1. 所有脚本同时启动。
  2. 每个脚本在另一个文件夹中执行,以访问该文件夹中的script.py。
  3. 每个作业将日志保留在运行文件夹“ nohup.log”中。