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 的差异
- 参数
-C
不支持:LSF 中用于记录备注的功能在 FSCHED 版本中被移除,该参数输入会被忽略。 - 信号行为不同:
- 在 LSF 中
-b
可能仅发送SIGTERM
,但在 FSCHED 下强制使用SIGKILL
(等效于kill -9
)。 - 默认信号始终为
SIGTERM
(可通过-s TERM
显式指定)。
- 在 LSF 中
参数验证规则
- 过滤条件组合:多个过滤参数(如
-u alice -q gpu
)会执行逻辑“与”操作,仅终止同时满足所有条件的作业。 - 权限检查:若未指定
-u
且无管理员权限,默认仅能终止当前用户所属作业。
错误处理
- 若参数值无效(如不存在的队列名或信号名称),命令直接报错并退出,不会执行任何操作。
- 当过滤条件匹配到零个作业时,输出警告但不返回错误码。