跳到主要内容

bkill

简介

bkill 是用于终止 FSCHED 作业的工具,提供类似 LSF 的命令行接口。它支持通过多种过滤条件(如用户、队列、主机等)选择性地终止作业,并可指定发送的信号类型。


可用选项

参数是否需要参数值描述注意事项
-l列出所有支持的信号名称并退出。仅执行枚举,不终止作业。
-b强制快速终止(模拟 LSF 行为)。在 FSCHED 中强制发送 SIGKILL 而非默认 SIGTERM
-C "reason"添加终止原因的备注。(当前未实现参数会被静默忽略,FSCHED 不支持此功能。
-J <job_name>根据作业名称精确匹配并终止。仅支持完全匹配,不支持通配符或模糊搜索。
-m <host_name>过滤调度到指定主机/主机组的作业。主机名需与 FSCHED 配置一致,否则报错退出。
-q <queue_name>过滤处于指定队列的作业。队列名称区分大小写且必须有效存在。
-s <signal_name>指定终止信号(如 TERM, KILL)。仅支持 Signals 数组定义的值(如:TERM, KILL, INT),不接受数字或自定义信号。
-u <user_name>过滤指定用户或用户组的作业。输入 all 表示当前系统所有用户;无效用户会终止命令并报错。
-V显示版本信息并退出。无其他副作用。

常见用法示例

# 终止用户 alice 的所有作业(需权限)
bkill -u alice

# 强制终止队列 gpu_queue 中的作业
bkill -q gpu_queue -s KILL

# 根据作业名称 "model_train" 精确匹配终止
bkill -J model_train

注意事项

FSCHED 与 LSF 的差异

  1. 参数 -C 不支持:LSF 中用于记录备注的功能在 FSCHED 版本中被移除,该参数输入会被忽略。
  2. 信号行为不同
    • 在 LSF 中 -b 可能仅发送 SIGTERM,但在 FSCHED 下强制使用 SIGKILL(等效于 kill -9)。
    • 默认信号始终为 SIGTERM(可通过 -s TERM 显式指定)。

参数验证规则

  • 过滤条件组合:多个过滤参数(如 -u alice -q gpu)会执行逻辑“与”操作,仅终止同时满足所有条件的作业。
  • 权限检查:若未指定 -u 且无管理员权限,默认仅能终止当前用户所属作业。

错误处理

  • 若参数值无效(如不存在的队列名或信号名称),命令直接报错并退出,不会执行任何操作。
  • 当过滤条件匹配到零个作业时,输出警告但不返回错误码。