web-dev-qa-db-ja.com

プロセスにスーパーユーザー権限を付与せずに、プロセスの優先度を上げるにはどうすればよいですか?

Sudo Nice -n -10 processで始まる優先度の高いサービスがあります。ただし、このプロセスには、優先度の昇格を除いて、スーパーユーザー権限は必要ありません。ただし、Niceでは、優先度を上げるためにスーパーユーザー権限が必要です。

Rootとしても実行せずに、優先度を上げてプロセスを実行するにはどうすればよいですか?

4
Myrddin Emrys

チェックアウト /etc/security/limits.conf。そこで、ユーザーまたはグループが使用できる優先順位を指定できます。マニュアルページ:man 5 limits.conf

4
maxelost

1つの可能性はこれです(私が尋ねた後にちょうど考えました):

Sudo Nice -10 Sudo -u user command

しかし、もっとエレガントな方法があるはずだと思われます。

1
Myrddin Emrys

もう1つの可能性は、Sudo reniceを使用して、プロセスの開始後にプロセスの優先度を変更することです。プロセスのPIDを取得するには、pssedを使用するか、バックグラウンドで開始してシェルから直接プロセスを取得します。

process &
pid=$!
Sudo renice -10 $pid
fg $pid                 # if you don't want it in background

プロセスが他のプロセスを生成して終了する場合は、おそらくreniceが実行されるまでに生成されているため、代わりにpsを使用して子プロセスのPIDを取得する必要があります。それらを放棄します。

1
LaC