У меня есть длительный процесс на сервере под управлением 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
Я буду продолжать попытки, но ты знаешь, как делать то, что я хочу?
Вот это да. После проверки примеров в Интернете я обнаружил эта страница на 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
и был успешным.