我的steam遊戲很少。現在我renice
手動進行。
sudo renice -n -20 -p $(pgrep csgo_linux64)
有沒有辦法可以自動做到這一點(使用 systemd 規則或其他東西)?
答案1
您可以使用以下命令:
systemctl編輯--force--full您的服務名稱
然後編輯將開啟的文件:
[name-of-your-service]
Nice=your-nice-value
答案2
以下內容可能會產生一些我不知道的安全隱患,但所有建議都可以回答這個問題。
我用遊戲模式運行它在許多 Linux 發行版上都可用。它可以執行與遊戲相關的各種任務,包括執行好的。對於steam我改變了每個遊戲的屬性啟動選項成為:
__GL_THREADED_OPTIMIZATION=1 gamemoderun %command%
為了獲得 Nice/renice 的必要權限,我有一個遊戲玩家Linux/UNIX 群組。我在 /etc/security/limits.conf 中新增以下條目,透過以下方式為每個人設定預設限制:使用者組,然後允許組中的任何人遊戲玩家組 renice 最多為 -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 可以從 /home/myself/.config/gamemode.ini 讀取並設定所需的 renice 值,並將其套用到遊戲啟動時。
我遇到的一個問題是,蒸汽質子遊戲似乎與啟動它們的命令失去了親和力,並且沒有獲得適當的新限制。此問題的解決方法之一是使用 gamemoderun 啟動 steam,這樣它啟動的所有進程都會受到相同的限制。