Как повысить приоритет процесса, не предоставляя этому пользователю права суперпользователя?
У меня высокоприоритетное обслуживание, с которого я начинаю 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 дочернего процесса / процессов и переименовать их.