進程啟動時自動重新啟動

進程啟動時自動重新啟動

我的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,這樣它啟動的所有進程都會受到相同的限制。

另一種可能性是使用重整或者調度工具據我了解,它透過定期掃描系統來匹配進程屬性來動態調整。

相關內容