You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用ionice结合grep设置进程I/O优先级提示无对应进程如何解决

问题根源

你的命令报错核心原因是ps -ef | grep 进程名的返回结果会包含执行grep命令的临时进程,当后续ionice命令执行时,这个临时grep进程已经结束退出,因此会触发No such process的错误。
除此之外,该写法还可能模糊匹配到名称中包含关键词的其他无关进程,也可能导致报错。

修复方案

方案1:过滤掉grep自身进程

在原有命令基础上增加grep -v grep排除临时grep进程即可:

sudo ionice -c 1 -n 0 -p $(ps -ef | grep farmer | grep -v grep | awk '{print $2}')
sudo ionice -c 1 -n 0 -p $(ps -ef | grep harvest | grep -v grep | awk '{print $2}')

方案2:使用pgrep工具获取PID(更简洁可靠)

pgrep是专门用于按进程名查询PID的工具,默认不会包含grep临时进程,写法更简洁:

sudo ionice -c 1 -n 0 -p $(pgrep farmer)
sudo ionice -c 1 -n 0 -p $(pgrep harvest)

方案3:批量处理多同名进程

如果存在多个同名进程,可配合xargs批量设置优先级:

pgrep farmer | xargs -r sudo ionice -c 1 -n 0 -p
pgrep harvest | xargs -r sudo ionice -c 1 -n 0 -p

-r为xargs的可选参数,作用是当未匹配到任何PID时不执行后续ionice命令,避免空参数报错

可选优化

如果需要精确匹配完整进程名,避免匹配到名称包含关键词的无关进程,可以给pgrep添加-x参数:

pgrep -x farmer | xargs -r sudo ionice -c 1 -n 0 -p
pgrep -x harvest | xargs -r sudo ionice -c 1 -n 0 -p

内容的提问来源于stack exchange,提问作者dawnslayer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 19:45:00