У меня мало игр в стим. Сейчас я renice
их вручную устанавливаю.
sudo renice -n -20 -p $(pgrep csgo_linux64)
Есть ли способ сделать это автоматически (используя правила systemd или что-то в этом роде)?
решение1
Вы можете использовать следующую команду:
systemctl редактирование --force --fullназвание-вашей-службы
Затем отредактируйте открывшийся файл:
[name-of-your-service]
Nice=your-nice-value
решение2
Нижеизложенное может иметь некоторые последствия для безопасности, о которых я не знаю, но все предложения могут дать ответ на вопрос.
я используюgamemoderunкоторый доступен во многих дистрибутивах Linux. Он может выполнять различные настройки, относящиеся к играм, включая выполнениехороший. Для стима я меняю каждую игрусвойства параметры запускабыть:
__GL_THREADED_OPTIMIZATION=1 gamemoderun %command%
Чтобы получить необходимые разрешения для nice/renice у меня естьгеймерыГруппа Linux/UNIX. Я добавляю следующие записи в /etc/security/limits.conf, чтобы задать лимит по умолчанию для всех черезпользовательгруппе, а затем разрешить любому вгеймергруппа, которая может быть изменена на величину до -6, но с жестким системным ограничением -10:
# limits for gamers group in /etc/security/limits.conf
# set default and max prio for users who are members of the gamer group
@user - nice 0
@gamer soft nice -6
@gamer hard nice -10
Я поставил себя на местогеймерыгруппа (вступает в силу при новом входе в систему или с помощью команды newgrp).
При таких ограничениях gamemoderun может считывать и устанавливать желаемое значение renice из /home/myself/.config/gamemode.ini и применять его при запуске игры.
Единственная проблема, с которой я столкнулся, заключается в том, что игры Steam Proton, похоже, теряют связь с командой, которая их запустила, и не получают соответствующих новых ограничений. Одним из обходных путей для этой проблемы является запуск Steam с помощью gamemoderun, чтобы все процессы, которые он запускает, в конечном итоге получили те же ограничения.
Другой возможностью было бы использованиевосстановленныйилиschedtoolкоторые, как я понимаю, обновляются «на лету» путем сопоставления атрибутов процессов посредством периодического сканирования системы.