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

How to trigger multiple nohup scripts at once?

我正在努力优化我的一些工作流程,想知道是否有人 运行 遇到过与我类似的问题。我一直在努力弄清楚如何同时启动多个 "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)

但没有骰子...脚本甚至不会启动。任何 ideas/help 将不胜感激!!使用 python3.6 如果这也很重要(但似乎更像是一个 nohup 问题)。

使用'&'和使用'&&'有很大区别。第一个将 运行 每个脚本置于后台。第二个将按顺序执行它们,只要每个脚本都会 return 成功('exit 0',或等效)。

从 'start.sh' 的上下文来看,您似乎想要第一个选项(一起启动所有脚本)。每个脚本都在执行一个 python 程序 'script.py'。 post 没有指定初始工作目录中是否有一个脚本,或者是否有多个 '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' 中留下日志。