进程启动时自动重新启动

进程启动时自动重新启动

我的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,这样它启动的所有进程都会受到相同的限制。

另一种可能性是使用重整或者调度工具据我了解,它通过定期扫描系统来匹配进程属性来动态调整。

相关内容