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

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

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

4
задан Myrddin Emrys
08.03.2023 18:48 Количество просмотров материала 2718
Распечатать страницу

3 ответа

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

3
отвечен maxelost 2023-03-10 02:36

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

sudo nice -10 sudo -u user command

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

1
отвечен Myrddin Emrys 2023-03-10 04:53

другая возможность заключается в использовании 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
отвечен LaC 2023-03-10 07:10

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх