2

私はsetrlimitを使用して、プログラムがプロセスのように実行されるときにプログラムの良さを制限していますが、機能していません。

int main()
{
   struct rlimit limit;

   getrlimit(RLIMIT_NICE, &limit); 

   limit.rlim_max = 30;
   limit.rlim_cur = 15;

   setrlimit(RLIMIT_NICE, &limit)

    while(1)
        sleep(1);
    return 0;
}

プロセスの実行中、root 以外のアカウントは 0 より小さな優先度を設定できず、root はこれらの制限を超えることができます。何か不足していますか?

4

1 に答える 1

2

Linux を使用している場合は、以下を確認してください。

ulimit -e

戻ります0。これは私のマシンに設定されています:

$ ulimit -e
...
scheduling priority             (-e) 0

つまり、root 以外のユーザーは、nice 値をこの制限まで減らすことしかできません。/etc/security/limits.confroot アクセス権がある場合は、この制限を変更できるはずです。

ここにいくつかの詳細があります:http://www.linuxjournal.com/article/3910

于 2014-06-06T20:03:12.413 に答える