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

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

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

4
задан 21.01.2011, 17:54

3 ответа

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

4
ответ дан 07.12.2019, 20:09

Одна возможность - это (о котором я просто думал после выяснения):

sudo nice -10 sudo -u user command

Но кажется, что должен быть более изящный метод.

1
ответ дан 07.12.2019, 20:09

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

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

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

1
ответ дан 07.12.2019, 20:09

Теги

Похожие вопросы