问题标签 [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.
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 中的问题或解释为什么会发生这种情况将不胜感激!
bash - 在后台从 Bash 脚本启动进程,然后将其带到前台
以下是我拥有的一些代码的简化版本:
我想interactive_command
在其第一行输出存储到变量后将其置于前台,以便用户可以通过调用此脚本与它进行交互。
但是,似乎 usingfg %1
在脚本的上下文中不起作用,并且我不能fg
与 PID 一起使用。有没有办法我可以做到这一点?
(另外,是否有更优雅的方式来捕获第一行输出,而不写入临时文件?)
bash - 为什么我要在完成后添加等待?
我正在尝试创建一个 ping 清扫器,但代码永远不会正确退出。但是,当我在完成后添加等待时,它会退出并且速度要快得多。为什么呢?
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 次模拟产生了相同的结果,因为生成的随机数是相等的。由于每次模拟都需要很长时间才能运行,因此等待一项工作完成后再开始另一项工作对我来说是不可行的。
bash - 将 ping 与后台进程结合使用
我在这里做错了什么?
我正在使用 bash 3.2
docker - 启用 bash 作业控制后,Docker 容器不会停止
我有一个非常简单的 Dockerfile,它扩展了 mssql 文件,如下所示。两个额外的脚本被放入最终图像中,一个带有一些数据库设置内容,另一个是entrypoint.sh
我用作包装器以首先启动 sql server 和导入脚本。完成后,sql 进程应该回到前台,它确实如此。
我有一个主进程和一些临时设置脚本,它必须在主进程启动后运行。辅助脚本完成后。主进程回到前台,应该处理所有信号。然而事实并非如此。
docker 文档中甚至还有一个示例项目,它的功能完全相同。
有没有办法让它工作,因为这似乎是一个非常常见的问题(当然工作控制是一个黑客。)
bash - Bash 等待立即终止?
我想在命令完成后播放声音,但前提是命令花费超过一秒钟。
我有这段代码(从https://stackoverflow.com/a/11056286/1757964复制并稍作修改):
不过,第二行的“等待”似乎立即终止。我尝试了 -f 标志,但行为没有改变。我怎样才能让“等待”真正等待?
c - pty主端的奇怪输出
我正在开发一个远程 shell 程序,并且我有一个使用forkpty()
. 从跟随端写入领导端按预期工作,但是当我开始尝试在跟随端读取时,领导端出现奇怪的输出。
我明白了:
我认为它可能与调试输出有关,所以我禁用了它,但是:
它似乎在重复,但我无法弄清楚它是什么。
追随者代码
领导者代码
当我fgets
从追随者端删除时,我的输出变为:
为什么追随者一侧的阅读会混淆领导者一侧的阅读?
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 后