renice 命令用于动态修改运行中进程的 nice 值,普通用户仅可增大自身进程 nice 值(降低优先级),root 可调高或降低;支持按 pid、用户(-u)、进程组(-g)调整,需用 ps 验证生效。

renice 命令专用于修改正在运行的进程的调度优先级(即 nice 值),无需重启进程,立即生效。核心要点是:它改的是“已启动进程”的优先级,不是启动时设置;普通用户只能降低自己进程的优先级(增大 nice 值),root 才能提权或调低 nice 值。
基本用法:按 PID 调整单个进程
最常用场景是针对某个具体进程 ID 修改优先级:
- 推荐写法(语义清晰、防出错):renice -n 12 -p 1234 —— 将 PID 为 1234 的进程 nice 值设为 12(绝对值)
- 简写形式也合法:renice 12 1234,但易混淆;若误写成 renice 12 1234 5678,旧版 renice 只处理第一个 PID,第二个会被忽略
- 要一次改多个进程,必须重复使用 -p:renice -n 15 -p 1234 -p 5678 -p 9012
批量调整:按用户或进程组统一降权
适合管理自己启动的一批任务,比如所有 Python 脚本或某个服务的子进程:
- 调整当前用户所有自有进程:renice -n 10 -u $USER
- 调整指定用户名的进程(仅限 root):renice -n 5 -u www-data
- 按进程组调整(注意是 PGID,不是会话 ID):renice -n 8 -g 456
权限与取值范围必须清楚
普通用户执行失败,往往不是报错,而是静默跳过或部分生效。关键限制有三条:
- 只能调整自己启动的进程:ps 看到的 PID,若属 root 或 systemd 启动,你无权修改
- 只能增大 nice 值(即降低优先级):不能设 -5、0 或比原值更小的数;例如原值是 5,你不能设成 3
- 取值被限制在 0 到 19:设 20 会失败,哪怕 root 可设到 19,你也只能到 19
验证是否真正生效
别只信命令返回“success”,top 按 r 键也可能因刷新延迟或视图过滤而漏改。可靠做法是:
- 先查原始值:ps -o pid,ni,comm -p 1234
- 执行 renice:renice -n 15 -p 1234
- 立刻再查确认:ps -o pid,ni,comm -p 1234 —— ni 列应已更新
- 如需找高负载目标,可用:ps -eo pid,ni,%cpu,comm --sort=-%cpu | head -5











