Изменить правильность (приоритет) запущенного процесса

Можно ли установить новый nice уровень запущенного процесса с известным идентификатором?

Требует ли эта операция root-доступа или просто является владельцем процесса?

7 ответов

Решение

Терминал

Если вы находитесь в терминале, вы можете использовать renice

renice [-n] priority [[-p] pid ...] [[-g] pgrp ...] [[-u] user ...]

Простой пример будет

renice 8 31043
31043: old priority 5, new priority 8

Вы также можете передать ему жесткие флаги, но это следует за этим порядком (сначала нужно передать приоритет, а затем pid - если вы измените порядок, он покажет сообщение об использовании)

renice -n 5 -p 31043
31043: old priority 8, new priority 5

Приоритеты работают в масштабе -20 в 19 - Чем меньше число, тем выше его приоритет в системе.

Если вы являетесь владельцем процесса, вам не нужен root - однако, если процесс принадлежит другому пользователю или вы планируете изменить группу / пользователя root процесса (через sudo) потребуется.

графический интерфейс пользователя

  • Alt+F2 и тип sudo gnome-system-monitor

До 11.04: Система> Администрирование> Системный монитор. Выберите Процессы.
В 11.04: Alt+A и поиск system monitor,

Идентификаторы показаны на изображении здесь:

введите описание здесь

И приятно, не требует sudo для увеличения милости, если у вас есть задача. Это делает, если вам нужно уменьшить любезность.

Запустите команду с хорошим prio

nice -n 19 your_command

Ренис процесс

renice 19 $(pidof your_command_name_like_for_ex_ffmpeg)

19

между -20 и 19

19 является самым низким приоритетом

Использование "renice" в терминале выглядит следующим образом:

Usage:
 renice [-n] <priority> [-p] <pid> [<pid>  ...]
 renice [-n] <priority> [-g] <pgrp> [<pgrp> ...]
 renice [-n] <priority> [-u] <user> [<user> ...]

Options:
 -g, --pgrp <id>        interpret as process group ID
 -h, --help             print help
 -n, --priority <num>   set the nice increment value
 -p, --pid <id>         force to be interpreted as process ID
 -u, --user <name|id>   interpret as username or user ID
 -v, --version          print version

Использование "sudo" перед командой "renice" поднимает пользователя до уровня root, и потребуется пароль администратора /root.

Например, если вы хотите поднять процесс с PID (ID процесса) 2606 с обычного приоритета на высокий приоритет, вы должны ввести в терминале следующее:

sudo renice -n -5 -p 2606

Вы также можете арендовать процесс в верхней части.

1) Начать сверху

$ top

2) отожмите нажатием r, Вам будет предложено ввести идентификатор процесса (PID) процесса, который вы хотите арендовать. PID по умолчанию является первым процессом (один из которых потребляет наибольшее количество ресурсов). Подтвердите с помощью Enter. Установите новое значение nice от -20 (более высокий приоритет) до +19 (более низкий приоритет).

htop

  1. Начните htop
  2. Renice с F7 / F8 (если вы внутри Byobu, временно отключите сочетания клавиш с помощью Shift + F12). Имейте в виду, что вам нужны привилегии суперпользователя для уменьшения привлекательности.

    https://i.s tack.imgur.com/DaWer.png

Вы можете добавить возможность CAP_SYS_NICEпользователю, использующему систему возможностей Linux, если вы не хотите предоставлять полный root-доступ пользователю/сценарию.

К сожалению, он по-прежнему позволяет изменять произвольные процессы, в том числе принадлежащие разным пользователям.

Другие вопросы по тегам