blaunch
介绍
blaunch
是一个用于替代 LSF 的 FSCHED 命令行工具,支持在指定主机上执行任务或命令,并提供与 LSF 类似的功能。
参数说明
参数列表
参数名称 | 是否需要值 | 用途 | 注意事项 |
---|---|---|---|
-n | 否 | 将标准输入(STDIN)设置为 /dev/null 。 | 开关参数,无需指定值。 |
-u <host_file> | 是 | 从文件中读取主机列表,在所有列出的主机上执行任务。 | 与 -z 冲突,不可同时使用;若文件不存在或格式错误将报错。 |
-z <hostname> | 是 | 直接指定单个主机名,在该主机上执行任务。 | 与 -u 冲突,不可同时使用。 |
--use-login-shell | 否 | 使用用户的登录 shell(如 Bash 或 Zsh)执行命令。 | 开关参数;若与 --no-shell 同时使用结果未定义。 |
--no-shell | 否 | 直接运行命令,不通过任何中间 shell。 | 开关参数;若与 --use-login-shell 同时使用结果未定义。 |
参数详细说明
1. -n
- 用途:将任务的标准输入设置为
/dev/null
,避免从终端读取输入。 - 示例:
blaunch -n my_command arg1 arg2
2. -u <host_file>
- 参数值要求:
<host_file>
是包含主机名的文本文件,每行一个主机名(空行会被忽略)。 - 示例:
blaunch -u hosts.txt my_script.sh
- 注意事项:若指定的文件不存在或格式不正确,命令会直接报错并终止。
3. -z <hostname>
- 参数值要求:
<hostname>
是目标主机名(如host1.example.com
)。 - 示例:
blaunch -z host2 compute_task
4. --use-login-shell
- 用途:通过用户的登录 shell 执行命令,确保环境变量和配置生效。
- 示例:
blaunch --use-login-shell ./my_script.sh
- 注意事项:若同时使用
--no-shell
,行为结果未定义。
5. --no-shell
- 用途:直接执行命令,不通过任何中间 shell。
- 示例:
blaunch --no-shell my_binary
- 注意事项:若同时使用
--use-login-shell
,行为结果未定义。
使用示例
示例1:基本任务执行
blaunch echo "Hello World"
- 执行结果:直接在默认主机上输出
Hello World
。
示例2:指定单个主机
blaunch -z host3 python script.py
- 在
host3
上运行python script.py
。
示例3:从文件加载主机列表
假设 hosts.txt
内容为:
node1
node2
执行命令:
blaunch -u hosts.txt ./run.sh
- 将在
node1
和node2
上运行./run.sh
。
示例4:参数冲突错误处理
尝试同时使用 -u
和 -z
:
blaunch -u hosts.txt -z host4 cmd # 报错!
- 错误提示:
FATAL: conflicting with -z
注意事项
-
命令结构要求: 命令格式为
blaunch [options] [host] command [arguments]
。若未指定主机(如-u/-z
),则第一个剩余参数会被视为目标主机,其余作为命令和参数。 -
冲突检测: 若同时使用
-u
和-z
,或--use-login-shell
与--no-shell
,工具会直接报错或行为结果未定义。 -
FSCHED/LSF 功能差异: 部分 LSF 特有功能在本工具中未实现:
- 作业队列管理 (
-q
参数)。 - 资源配额控制(如内存、GPU 分配)。
- 分布式任务的依赖关系定义。
- 作业队列管理 (
-
错误处理: 参数解析失败时,会输出详细错误信息并终止执行。