2009-06-10 9 views
7

Używam Ubuntu Linux (2.6.28-11-generiC# 42-Ubuntu SMP pt. 17 kwietnia 01:57:59 UTC 2009 i686 GNU/Linux) i wydaje się, że polecenie "ulimit - t "nie działa poprawnie. Uruchomiłem:ulimit -t under ubuntu

ulimit -t 1; myprogram

gdzie "program" to nieskończona pętla. Spodziewałem się, że program zostanie przerwany po 1 sekundzie, ale to się nie skończyło. Próbowałem tego samego w instalacji Linux Fedory i działało zgodnie z oczekiwaniami.

Czy jest jakaś konfiguracja, która musi zostać skonfigurowana, aby działał prawidłowo?

- TSF

+0

Nie sądzę, że należy na ServerFault. Co sprawia, że ​​tak myślisz? –

+0

Tak, masz rację, zareagowałem tak szybko –

Odpowiedz

16

Jak Tsf wskazał, że problem jest z powodu bug in kernel 2.6.28. Pozostawiam moją oryginalną odpowiedź, ponieważ uważam, że i tak może być pomocna.

Z podręcznika ulimit

-t The maximum amount of cpu time in seconds.

Co liczy się w odniesieniu do ulimit jest tylko raz CPU. Spróbuj uruchomić program tak:

time myprogram 

który pokaże Ci, jak dużo czasu procesora to rzeczywiście wykorzystuje.

Podejrzewam, że Twoja nieskończona pętla zawiera sleep() , a czas uśpienia nie wpływa na czas procesora procesu.

ten ginie po jednej sekundzie:

[email protected]:~$ bash 
[email protected]:~$ ulimit -t 1; for ((i=1; 1; i++)); do a=1; done 
Killed 

To wydaje się działać bez końca (ale oczywiście nie robi):

[email protected]:~$ bash 
[email protected]:~$ ulimit -t 1; for ((i=1; 1; i++)); do sleep 1; done 

mierzyć czas CPU tak ...

[email protected]:~$ time for ((i=1; i<5; i++)); do sleep 1; done 

... i 5 sekund później ...

real  0m4.008s 
user  0m0.000s 
sys   0m0.012s 

... tylko 12 ms czasu procesora.

Próbowałem go na Ubuntu Jaunty Jackalope (9.04)

Linux host 2.6.28-11-generiC#42-Ubuntu SMP 
Fri Apr 17 01:57:59 UTC 2009 i686 GNU/Linux 
+1

Nie, nie mam żadnego snu w moim programie. Zauważ, że działa zgodnie z oczekiwaniami w Fedorze, więc wygląda na problem z konfiguracją w moim Ubuntu. – Tsf

+1

Opublikowałem to samo pytanie w innym temacie, na które odpowiedziano, kierując do: https://bugs.launchpad.net/ubuntu/jaunty/%2Bsource/linux/%2Bbug/361508 To wyjaśnia problem ! – Tsf

+0

Dzięki, dodałem twoją podpowiedź u góry mojej odpowiedzi. Myślę, że lepiej, jeśli ludzie zobaczą najpierw błąd jądra. –

Powiązane problemy