Automatisches Renice beim Prozessstart

Automatisches Renice beim Prozessstart

Ich habe einige Steam-Spiele. Im Moment spiele ich renicesie manuell.

sudo renice -n -20 -p $(pgrep csgo_linux64)

Gibt es eine Möglichkeit, das automatisch zu tun (mithilfe von Systemd-Regeln oder so etwas)?

Antwort1

Sie können den folgenden Befehl verwenden:

systemctl bearbeiten --force --fullName Ihres Dienstes

Bearbeiten Sie dann die Datei, die geöffnet wird:

[name-of-your-service]

Nice=your-nice-value

Antwort2

Das Folgende hat möglicherweise einige Sicherheitsimplikationen, die mir nicht bekannt sind, aber alle Vorschläge könnten zu einer Antwort auf die Frage führen.

ich benutzeSpielmoderundas auf vielen Linux-Distributionen verfügbar ist. Es kann eine Vielzahl von Tweeks durchführen, die für Spiele relevant sind, einschließlich der Durchführung einesHübsch. Für Steam ändere ich jedes SpielEigenschaften Startoptionenzu sein:

__GL_THREADED_OPTIMIZATION=1 gamemoderun %command%

Um die notwendigen Berechtigungen für nice/renice zu erhalten, habe ich eineSpielerLinux/UNIX-Gruppe. Ich füge die folgenden Einträge in /etc/security/limits.conf hinzu, um einen Standardwert für das Limit für alle über dieBenutzerGruppe, und dann jedem in derSpielerGruppe, die um bis zu -6 reduziert werden kann, jedoch mit einem System-Hardlimit von -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

Ich versetze mich in dieSpielerGruppe (dies wird bei einer erneuten Anmeldung oder über den Befehl newgrp wirksam).

Wenn diese Grenzwerte festgelegt sind, kann gamemoderun einen gewünschten Renice-Wert aus /home/myself/.config/gamemode.ini lesen und festlegen und ihn beim Start des Spiels anwenden.

Das einzige Problem, das ich habe, ist, dass Steam-Proton-Spiele die Affinität zu dem Befehl zu verlieren scheinen, mit dem sie gestartet wurden, und nicht die entsprechenden neuen Limits erhalten. Eine Problemumgehung für dieses Problem besteht darin, Steam mit gamemoderun zu starten, sodass alle damit gestarteten Prozesse mit denselben Limits enden.

Eine weitere Möglichkeit wäre die VerwendungreniziertoderschedtoolDie Aktualisierung erfolgt, soweit ich weiß, im laufenden Betrieb, indem die Prozessattribute über regelmäßige Systemscans abgeglichen werden.

verwandte Informationen