4

У меня высокоприоритетная служба, которую я запускаю с sudo nice -n -10 process . Этот процесс не требует прав суперпользователя, за исключением повышения приоритета. Но nice требует привилегий суперпользователя для повышения приоритета.

Как запустить процесс с повышенным приоритетом, не выполняя при этом права root?

3 ответа3

4

Проверьте /etc/security/limits.conf . Там вы можете указать, какие приоритеты разрешено использовать пользователям или группам. Страница справочника: man 5 limits.conf

1

Одна из возможностей заключается в следующем (о чем я только что подумал, спросив):

sudo nice -10 sudo -u user command

Но, похоже, должен быть более элегантный метод.

1

Другая возможность - использовать sudo renice для изменения приоритета процесса после его запуска. Чтобы получить PID процесса, вы можете использовать ps и sed или запустить его в фоновом режиме и получить процесс непосредственно из оболочки:

process &
pid=$!
sudo renice -10 $pid
fg $pid                 # if you don't want it in background

Обратите внимание, что если процесс порождает другие процессы и завершается, он, вероятно, сделает это к моменту запуска renice, поэтому вы захотите использовать ps чтобы вместо этого получить PID дочернего процесса / процессов и переименовать их.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .