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

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

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

3 ответа

Решение

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

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

sudo nice -10 sudo -u user command

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

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

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

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

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