Команды Linux · 4 min read · Sep 19, 2025
Учебник по командам Linux nice и renice (7 примеров)
Мощь командной строки Linux можно оценить по тому факту, что вы даже можете легко настроить приоритет планирования процессов с помощью инструментов командной строки. Да, это возможно, и в этом учебнике мы обсудим, как это сделать с помощью утилит nice и renice.
Но прежде чем мы это сделаем, стоит упомянуть, что все примеры в этой статье были протестированы на системе Ubuntu 16.04LTS.
Команды Linux nice и renice
В то время как команда nice позволяет вам выполнять программу/процесс с измененным приоритетом планирования, команда renice позволяет вам изменить приоритет планирования уже запущенного процесса. Следующий синтаксис является общим для обеих этих команд:
nice [OPTION] [COMMAND [ARG]...]renice [-n] priority [[-p] pid ...] [[-g] pgrp ...] [[-u] user ...]Вот что говорят о них соответствующие страницы man:
Nice:
Выполнить COMMAND с измененной добротой, что влияет на планирование процессов.
Без COMMAND вывести текущую доброту. Значения доброты
варьируются от -20 (наиболее благоприятно для процесса) до 19 (наименее благоприятно
для процесса).Renice:
Renice изменяет приоритет планирования одного или нескольких запущенных процессов.
Следующие параметры интерпретируются как идентификаторы процессов, идентификаторы групп процессов или имена пользователей. Изменение приоритета группы процессов приводит к изменению приоритета планирования всех процессов в группе. Изменение приоритета пользователя приводит к изменению приоритета планирования всех процессов, принадлежащих пользователю. По умолчанию процессы, на которые это влияет, указываются по их идентификаторам процессов.Следующие примеры в формате вопросов и ответов дадут вам лучшее представление о том, как работают эти инструменты.
Вопрос 1. Как проверить доброту запущенных программ/процессов?
Да, сначала нужно знать, как проверить существующий приоритет планирования, прежде чем его изменять. Если это касается процесса, который вы собираетесь запустить, то вы должны знать, что по умолчанию приоритет планирования всегда равен 0.
Например, мы выполнили следующий процесс:
./test-newИ подтвердили приоритет с помощью следующей команды:
ps -lu himanshu | grep test-newЗдесь ‘himanshu’ — это пользователь, который владеет процессом ‘test-new’. Следующий вывод был получен от вышеуказанной команды:
0 S 1000 6306 6125 0 80 0 - 508 hrtime pts/18 00:00:00 test-newЗначение в 8-м столбце — это значение доброты, и, как вы можете видеть, оно равно нулю.
Вопрос 2. Как работает команда nice?
Итак, теперь к делу, как работает команда nice? Это просто — используйте инструмент следующим образом:
nice -PRIORITY COMMANDНапример, если я хочу, чтобы приоритет планирования был 10, вот как я могу это сделать:
nice -10 ./test-newСледующий вывод команды ps в этом случае подтверждает, что приоритет был изменен на 10.
0 S 1000 6694 6125 0 90 10 - 508 hrtime pts/18 00:00:00 test-newВопрос 3. Как заставить nice работать с отрицательными значениями?
Как уже упоминалось в начале, значения доброты варьируются от -20 до 19, при этом первое значение наиболее благоприятно, а последнее — наименее. В случае, если вы хотите присвоить отрицательное значение доброты процессу, вам нужно будет использовать двойное тире.
Например,
sudo nice --10 ./test-newОбратите внимание, что вам нужны права суперпользователя, чтобы присвоить отрицательное значение доброты процессу. И именно по этой причине ваша команда ps для подтверждения новой доброты должна содержать ‘root’ вместо другого имени пользователя.
$ ps -lu root | grep test-new
Вот вывод, который эта команда произвела в нашем случае:
4 S 0 7054 7053 0 70 -10 - 508 - pts/18 00:00:00 test-newТаким образом, вы можете видеть, что процесс теперь работает с значением доброты -10.
Вопрос 4. Как добавить заданное целое значение к доброте?
Вы можете настроить значение доброты с помощью параметра командной строки -n, который добавляет заданное целое значение к доброте. По умолчанию это заданное значение равно 10, хотя вы также можете передать другое значение.
-n, --adjustment=NНапример:
nice --adjustment=5 ./test-newИ вот вывод, который команда ps произвела в этом случае:
0 S 1000 7314 6125 0 85 5 - 508 hrtime pts/18 00:00:00 test-newТаким образом, вы можете видеть, что приоритет был установлен на 5.
Вопрос 5. Как изменить приоритет запущенных процессов?
В то время как команда nice используется при запуске программ, команда renice позволяет вам изменить приоритет запущенного процесса. Например, вот как мы изменили приоритет уже запущенного процесса ‘test-new’ с 5 на 15.
renice -n 15 -p 7314Аргумент -p предназначен для идентификатора процесса. Следующий вывод был получен от вышеуказанной команды:
7314 (идентификатор процесса) старый приоритет 5, новый приоритет 15И значение доброты действительно изменилось на 15.
Вопрос 6. Как изменить приоритет для всех процессов, принадлежащих группе?
Вы можете использовать параметр -g для этого. Например:
renice -n 20 -g howtoforgeВышеуказанная команда изменит приоритет всех процессов, принадлежащих группе ‘howtoforge’.
Вопрос 7. Как изменить приоритет для всех процессов, принадлежащих пользователю?
Чтобы изменить приоритет для всех программ, связанных с пользователем, используйте параметр -u. Например:
renice -n 5 -u himanshuКонечно, обычный пользователь командной строки Linux обычно не попадает в ситуации, когда эти инструменты нужны, но всегда полезно знать о важных инструментах командной строки, и nice и renice входят в их число. Хорошая новость заключается в том, что кривая обучения, связанная с ними, вовсе не крута. Мы уже обсудили большинство опций здесь. Для получения дополнительной информации об этих утилитах обратитесь к их страницам man - здесь и здесь.
Get new posts in your inbox
No spam. Unsubscribe anytime.