Назад | Перейти на главную страницу

Установка значения nice по умолчанию для программы в Linux

Как это ни странно, я не могу найти информацию, как установить значение nice по умолчанию для программы (не для пользователя или группы!). Я хотел бы начать все экземпляры chrome и firefox с хорошим значением 10. Какое решение было бы наиболее подходящим?

Придется немного поработать.

Сначала получите полный путь к двоичному файлу firefox:

which firefox
/usr/bin/firefox

Теперь переместите это, например, в firefox-original:

mv /usr/bin/firefox /usr/bin/firefox-original

Теперь создайте небольшой скрипт-обработчик под названием /usr/bin/firefox который будет вызываться вместо исходного двоичного файла firefox:

cat /usr/bin/firefox
#!/bin/bash

exec nice - n 10 /usr/bin/firefox-original "$@"

Наконец сделайте скрипт исполняемым:

chmod 755 /usr/bin/firefox

Теперь каждый раз, когда запускается firefox, этот скрипт выполняет двоичный файл с хорошим значением 10. $@ просто означает передать все аргументы скрипта двоичному файлу.

Вместо того, чтобы испортить вам /usr/bin и получать каждое обновление, почему бы не использовать ~/.local/bin ?

## one-time setup
mkdir -p ~/.local/bin
# prepend new path to PATH to give it priority
echo 'PATH=$HOME/.local/bin:$PATH' >> ~/.bashrc
# then open new terminal or
source ~/.bashrc

## create a wrapper script
# $@ is there to passthrough args.
echo 'nice -10' `which firefox` '$@' > ~/.local/bin/firefox
# make it executable
chmod +x ~/.local/bin/firefox

# check sanity
which firefox
cat `which firefox`

Создайте ярлык клавиатуры, который будет выполнять следующую команду:

nohup firefox & renice +15 $(pgrep firefox)

Это должно работать независимо от того, обновляете ли вы.