跳到主要内容

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
  • 将在 node1node2 上运行 ./run.sh

示例4:参数冲突错误处理

尝试同时使用 -u-z

blaunch -u hosts.txt -z host4 cmd  # 报错!
  • 错误提示:FATAL: conflicting with -z

注意事项

  1. 命令结构要求: 命令格式为 blaunch [options] [host] command [arguments]。若未指定主机(如 -u/-z),则第一个剩余参数会被视为目标主机,其余作为命令和参数。

  2. 冲突检测: 若同时使用 -u-z,或 --use-login-shell--no-shell,工具会直接报错或行为结果未定义。

  3. FSCHED/LSF 功能差异: 部分 LSF 特有功能在本工具中未实现:

    • 作业队列管理 (-q 参数)。
    • 资源配额控制(如内存、GPU 分配)。
    • 分布式任务的依赖关系定义。
  4. 错误处理: 参数解析失败时,会输出详细错误信息并终止执行。