我在运行 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
并取得了成功。