将进程的调度策略更改为 IDLE 的正确方法是什么?

将进程的调度策略更改为 IDLE 的正确方法是什么?

我在运行 Ubuntu Server 9.10 的服务器上有一个长时间运行的进程。我想使用命令让它在 SCHED_IDLE 策略下运行chrt。但是,在阅读手册页后,我无法理解为正在运行的进程发出命令的正确方法。

我尝试过但没有成功:

# chrt -i -p 688
pid 688's current scheduling policy: SCHED_OTHER
pid 688's current scheduling priority: 0
# chrt -p -i 688
pid 688's current scheduling policy: SCHED_OTHER
pid 688's current scheduling priority: 0
# chrt -p 688 -i
chrt: failed to set pid 0's policy: Invalid argument

我会继续尝试,但是你知道如何做我想要做的事吗?

答案1

哇。在网上查找例子后,我发现这一页在 ibm.com 上,给出了一个如何将正在运行的进程的调度策略设置为 SCHED_FIFO 的示例:

# chrt -p -f 35 13826

35,显然是 SCHED_FIFO 策略中进程的优先级。所以我只是尝试使用虚拟的 0 优先级:

# chrt -p -i 0 688
# chrt -p 688
pid 688's current scheduling policy: SCHED_IDLE
pid 688's current scheduling priority: 0

并取得了成功。

相关内容