0

ulimit端末コマンドをテストするために、Eclipse-Ubuntuで2つの簡単なプログラムを作成しました(バイナリが添付されています)++++++++++++++++++++++++++++++ ++ イテレータ

#include<iostream>
using namespace std;
int main(){
for(long long i = 0;;i++)
cout << i << endl;
return 0;
}

+++++++++++++++++++++++++++++++ タイマー

#include<iostream>
#include<time.h>
using namespace std;
clock_t start;
int main(){
start = clock();
for(long long i = 0;;i++)
cout << i << " in " << (double)(clock()-start)/(double)CLOCKS_PER_SEC << "seconds" << endl;
return 0;
}

++++++++++++++++++++++++++++++++ テストタイマー

+ulimit -t 0; '[PATH]\timer

出力の終了

116997 in 1.06seconds
Killed

'+ulimit -t 1; '[PATH]\timer

出力の終了

102501 in 0.96seconds
Killed

'+ulimit -t 2; '[PATH]\timer

出力の終了

[TEST 1]133073 in 1.19seconds
Killed
[TEST 2]101894 in 1seconds
Killed
[TEST 3]100950 in 0.96seconds
Killed
[TEST 4]126723 in 1.13seconds
Killed
[TEST 5 after opening a new terminal session]229302 in 2.14seconds
Killed

'+ulimit -t 5; '[PATH]\timer

出力の終了

**[TEST 1]219295 in 1.99seconds
Killed**
**[TEST 2 ater opening a new session]603088 in 5.47seconds
Killed**

++++++++++++++++++++++++++++++++ テスト反復子

+ulimit -t 0; '[PATH]\iterator'

出力の終了

200412
Killed

+ulimit -t 1; '[PATH]\iterator'

出力の終了

199462
Killed

+ulimit -t 2; '[PATH]\iterator'

出力の終了

206111
Killed

+ulimit -t 5; '[PATH]\iterator'

出力の終了

244284
Killed

何が問題だと思いますか?新しい端末セッションが新しい制限時間を設定しているようです よろしくお願いします

4

2 に答える 2

0

GNU/Linux では、設定で/etc/security/limits.confpam_limits.so を指定すると、設定ファイルのすべてのセッションに対して CPU 制限をpam設定できます。

于 2012-08-24T09:57:38.497 に答える
0

そのとおりです。ulimit は、関連のないプロセスではなく、現在のシェルの子孫に適用されます。

于 2012-08-24T10:32:38.443 に答える