问题标签 [job-control]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
119 浏览

bash - 为什么 bash 会破坏 MPI 作业控制循环

我正在尝试使用一个简单的 bash 脚本来顺序运行一批 MPI 作业。该脚本在运行串行代码时完美运行(我使用的是 Fortran 90),但由于某种原因,当我尝试执行 MPI 代码时 bash 会跳出循环。

我已经找到了解决该问题的方法。我只是在 Perl 中编写了基本完全相同的脚本,它就像一个魅力。我真的很想了解这里的问题,因为我更喜欢 bash 的简单性,并且它在几乎所有其他情况下都非常适合我自己的脚本需求。

我尝试将 MPI 代码作为后台进程运行,并使用 wait 得到相同的结果。如果我在后台运行作业而不使用等待,bash 不会跳出循环,但它会堆叠作业直到最终崩溃。无论如何,目标是为每个参数集按顺序运行可执行文件,我只是想注意在这种情况下循环不会中断。

Bash 脚本,interp.sh:用法 --> $ ./interp.sh 输入文件

输入文件,input.dat:

示例 MPI f90 代码,main.f90:

示例生成文件:

我的主机文件

请注意,如果 mpiexec 行被注释掉,脚本将按预期运行。输出如下所示:

这些是应该在每个循环中传递给 MPI 代码的参数值。但是,在脚本中调用 mpiexec 时,只会读取并传递第一组参数。

如果这一切有点过分,我深表歉意,我只是想提供测试所需的一切。任何帮助解决 bash 中的问题或解释为什么会发生这种情况将不胜感激!

0 投票
1 回答
1816 浏览

bash - 在后台从 Bash 脚本启动进程,然后将其带到前台

以下是我拥有的一些代码的简化版本:

我想interactive_command在其第一行输出存储到变量后将其置于前台,以便用户可以通过调用此脚本与它进行交互。

但是,似乎 usingfg %1在脚本的上下文中不起作用,并且我不能fg与 PID 一起使用。有没有办法我可以做到这一点?

(另外,是否有更优雅的方式来捕获第一行输出,而不写入临时文件?)

0 投票
1 回答
53 浏览

bash - 为什么我要在完成后添加等待?

我正在尝试创建一个 ping 清扫器,但代码永远不会正确退出。但是,当我在完成后添加等待时,它会退出并且速度要快得多。为什么呢?

0 投票
2 回答
508 浏览

slurm - Slurm 作业数组:有没有办法在 slurm 上创建一个在不同时间开始的作业数组?

我有一个长时间运行的任务,我想在 slurm 上使用作业数组来运行。

我目前用来提交作业的脚本是:

#!/bin/bash

#SBATCH --output=slurm-%A_%a.out

#SBATCH --array=1-30

#SBATCH --ntasks=1

#SBATCH --qos=qos-15d

#SBATCH --partition=large

#SBATCH --mem=4G

srun ./a

这个脚本工作正常,但我的问题是因为它是一个包含 30 个作业的数组,我需要在 X 时间启动第一个,然后在 X 分钟后启动第二个,依此类推。我想这样做是因为我将模拟一个使用 srand (time (0)) 函数生成随机数的 C 编译程序。因此,上面的脚本对 30 次模拟产生了相同的结果,因为生成的随机数是相等的。由于每次模拟都需要很长时间才能运行,因此等待一项工作完成后再开始另一项工作对我来说是不可行的。

0 投票
0 回答
10 浏览

bash - 将 ping 与后台进程结合使用

我在这里做错了什么?

我正在使用 bash 3.2

0 投票
0 回答
121 浏览

docker - 启用 bash 作业控制后,Docker 容器不会停止

我有一个非常简单的 Dockerfile,它扩展了 mssql 文件,如下所示。两个额外的脚本被放入最终图像中,一个带有一些数据库设置内容,另一个是entrypoint.sh我用作包装器以首先启动 sql server 和导入脚本。完成后,sql 进程应该回到前台,它确实如此。

我有一个主进程和一些临时设置脚本,它必须在主进程启动后运行。辅助脚本完成后。主进程回到前台,应该处理所有信号。然而事实并非如此。

docker 文档中甚至还有一个示例项目,它的功能完全相同。

有没有办法让它工作,因为这似乎是一个非常常见的问题(当然工作控制是一个黑客。)

0 投票
2 回答
67 浏览

bash - Bash 等待立即终止?

我想在命令完成后播放声音,但前提是命令花费超过一秒钟。

我有这段代码(从https://stackoverflow.com/a/11056286/1757964复制并稍作修改):

不过,第二行的“等待”似乎立即终止。我尝试了 -f 标志,但行为没有改变。我怎样才能让“等待”真正等待?

0 投票
0 回答
37 浏览

c - pty主端的奇怪输出

我正在开发一个远程 shell 程序,并且我有一个使用forkpty(). 从跟随端写入领导端按预期工作,但是当我开始尝试在跟随端读取时,领导端出现奇怪的输出。

我明白了:

我认为它可能与调试输出有关,所以我禁用了它,但是:

它似乎在重复,但我无法弄清楚它是什么。

追随者代码

领导者代码

当我fgets从追随者端删除时,我的输出变为:

为什么追随者一侧的阅读会混淆领导者一侧的阅读?

0 投票
1 回答
345 浏览

c - 为什么将 SIGTTOU 信号传递给进程?

我试图构建一个在 ZSH shell 中运行的交互式 shell。任何命令都将在它自己的进程组中执行(因此我使用tcsetpgrpcall 使其成为前台进程组,一旦执行命令,交互式 shell 将成为前台进程组)。但是我观察到,在我的代码执行过程中,我收到了一个 SIGTTOU 信号,据我所知,当后台进程尝试写入终端时,会传递该信号。对于下面的示例,如果有人可以解释上述信号的原因,那将非常有帮助。

最小的可重现示例

这是我在终端上看到的输出: 在此处输入图像描述

0 投票
1 回答
72 浏览

azure - 如何在 ADF 中使用作业控制文件或 0 kb 文件(fin)跟踪复制活动?

由于我是 ADF 的新手,在以下情况下需要帮助。我需要将文件 azure blob 复制到 SFTP。文件如下:

XYZ0034_20210320.csv XYZ0034_20210321.csv XYZ0034_20210322.csv

在将这些文件复制到 SFTP 时,要跟踪副本,需要创建 fin 文件或需要在复制活动结束时作业控制文件/表。

例如: XYZ0034_202103200030.csv XYZ0034_202103200045.csv XYZ0034_202103200100.csv

要求:

XYZ0034_202103200030.csv XYZ0034_202103200030.fin

作业控制:

XYZ0034_202103200030.csv Y XYZ0034_202103200045.csv Y XYZ0034_202103200100.csv N 复制到 Y 后