プロセス開始時に自動的に renice する

プロセス開始時に自動的に renice する

私は 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に次のエントリを追加して、全員の制限のデフォルトを設定します。ユーザーグループに所属する全員にゲーマーグループの nices を最大 -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 値を読み取って設定し、ゲームの起動時に適用できます。

私が抱えている 1 つの問題は、Steam Proton ゲームが、それを起動したコマンドとの親和性を失い、適切な新しい制限を取得できないことです。この問題の回避策の 1 つは、Steam を gamemoderun で起動して、起動するすべてのプロセスが同じ制限を持つようにすることです。

もう一つの可能​​性としては、再調整されたまたはスケジュールツール私の理解するところによると、これは、システムの定期的なスキャンを通じてプロセス属性を照合することにより、オンザフライで renice を実行します。

関連情報