我的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 值,并将其应用到游戏启动时。
我遇到的一个问题是 Steam Proton 游戏似乎与启动它们的命令失去了亲和力,并且没有获得适当的新限制。此问题的一种解决方法是使用 gamemoderun 启动 steam,这样它启动的所有进程都会受到相同的限制。