qmod
修改 FSCHED 中队列和作业的状态。
参数介绍
队列操作
| 选项 | 是否需要值 | 目标类型 | 功能描述 | 主要差异 |
|---|---|---|---|---|
-d | 是 | 队列名 | 禁用队列,阻止后续作业派发到该队列 | 无差异 |
-e | 是 | 队列名 | 启用队列,允许后续作业派发到该队列 | 无差异 |
-sq | 是 | 队列名 | 挂起队列,并停住该队列中正在运行的作业 | 原生队列显示 s,wrapper 显示 d;原生作业显示 S,wrapper 显示 s |
-usq | 是 | 队列名 | 恢复队列,并继续该队列中 被停住的作业 | 不区分 suspend 来源,可能恢复 -sj 作业 |
-cq | 是 | 队列名 | 清除队列 error 状态 | dummy 实现;队列存在时仅输出 no error |
-rq | 是 | 队列名 | 重新调度队列中已派发的作业 | 重新入队后原生显示 Rq,wrapper 显示 qw |
作业操作
| 选项 | 是否需要值 | 目标类型 | 功能描述 | 主要差异 |
|---|---|---|---|---|
-sj | 是 | 作业 ID | 挂起作业 | 无差异 |
-usj | 是 | 作业 ID | 恢复被挂起的作业 | 无差异 |
-cj | 是 | 作业 ID | 清除作业 error 状态 | dummy 实现;作业存在时仅输出 not in error state |
-rj | 是 | 作业 ID | 重新调度作业 | 重新入队后原生显示 Rq,wrapper 显示 qw |
自动判断目标类型的兼容选项
| 选项 | 是否需要值 | 目标类型 | 功能描述 | 主要差异 |
|---|---|---|---|---|
-s | 是 | 队列名或作业 ID | 自动判断目标后执行挂起操作 | 队列目标:原生队列显示 s,wrapper 显示 d;原生作业显示 S,wrapper 显示 s |
-us | 是 | 队列名或作业 ID | 自动判断目标后执行恢复操作 | 队列目标不区分 suspend 来源 |
-c | 是 | 队列名或作业 ID | 自动判断目标后清除 error 状态 | dummy 实现;目标存在时仅输出无 error 状态 |
-r | 是 | 队列名或作业 ID | 自动判断目标后执行重新调度操作 | 重新入队后原生显示 Rq,wrapper 显示 qw |
通用选项
| 选项 | 是否需要值 | 功能描述 | 主要差异 |
|---|---|---|---|
-f | 否 | 强制执行状态修改 | 部分支持;支持队列操作和作业挂起/恢复 |
-help | 否 | 显示帮助信息 | 无差异 |
-version | 否 | 显示版本信息 | wrapper 扩展,原生不支持 |
目标与多目标规则
目标格式
| 目标 | 说明 |
|---|---|
queue | 队列名 |
job_id | 数字 作业 ID |
queue@host | SGE queue instance 语法;当前不支持按单个主机上的 queue instance 操作,通常会报 invalid queue |
多目标
同一个选项可以接收逗号分隔或空格分隔的多个目标:
qmod -d main,debug
qmod -sj 12345 12346
处理规则:
- 目标按命令行顺序逐个处理。
- 有效目标会继续执行,无效目标会输出对应错误。
- 只要任一目标失败,最终退出码为 1。
- 多个操作会按出现顺序执行,例如
qmod -d main -e main会先 disable 后 enable。
使用示例
示例1:禁用队列
qmod -d main
效果:禁用 main 队列,阻止后续作业派发到该队列。
示例2:启用队列
qmod -e main
效果:启用 main 队列,允许后续作业派发到该队列。
示例3:挂起队列
qmod -sq main
效果:挂起 main 队列,并停住该队列中运行中的作业。
示例4:恢复队列
qmod -usq main
效果:恢复 main 队列,并继续该队列中处于 suspended 状态的作业。
示例5:挂起作业
qmod -sj 12345
效果:停住作业 12345。挂起期间作业资源不会释放。
示例6:恢复作业
qmod -usj 12345
效果:继续运行被挂起的作业 12345。
示例7:重新调度可重新运行作业
qmod -rj 12345
效果:若作业允许重新调度,则将其重新入队;否则输出 not restartable。
示例8:重新调度队列中的作业
qmod -rq main
效果:枚举 main 队列中已派发的作业,并逐个尝试重新调度。
示例9:多目标按顺序处理
qmod -d main,debug -e main
效果:先禁用 main 和 debug,再启用 main。