Sudo Nice -n -10 process
で始まる優先度の高いサービスがあります。ただし、このプロセスには、優先度の昇格を除いて、スーパーユーザー権限は必要ありません。ただし、Niceでは、優先度を上げるためにスーパーユーザー権限が必要です。
Rootとしても実行せずに、優先度を上げてプロセスを実行するにはどうすればよいですか?
チェックアウト /etc/security/limits.conf
。そこで、ユーザーまたはグループが使用できる優先順位を指定できます。マニュアルページ:man 5 limits.conf
1つの可能性はこれです(私が尋ねた後にちょうど考えました):
Sudo Nice -10 Sudo -u user command
しかし、もっとエレガントな方法があるはずだと思われます。
もう1つの可能性は、Sudo renice
を使用して、プロセスの開始後にプロセスの優先度を変更することです。プロセスのPIDを取得するには、ps
とsed
を使用するか、バックグラウンドで開始してシェルから直接プロセスを取得します。
process &
pid=$!
Sudo renice -10 $pid
fg $pid # if you don't want it in background
プロセスが他のプロセスを生成して終了する場合は、おそらくreniceが実行されるまでに生成されているため、代わりにps
を使用して子プロセスのPIDを取得する必要があります。それらを放棄します。