2009-06-10 14 views
7

Estoy ejecutando Ubuntu Linux (2.6.28-11-generiC# 42-Ubuntu SMP vie 17 de abril 01:57:59 UTC 2009 i686 GNU/Linux) y parece que el comando "ulimit- t "no funciona correctamente. Ejecuté:ulimit -t bajo ubuntu

ulimit -t 1; myprogram

donde 'myprogram' es un ciclo sin fin. Esperaba que el programa se interrumpiera después de 1 segundo, pero no se detuvo. Intenté lo mismo en una instalación Linux Fedora y funcionó como se esperaba.

¿Hay alguna configuración que deba configurarse para que funcione correctamente?

- TSF

+0

No creo que pertenece en serverfault. ¿Qué te hace pensar eso? –

+0

Sí, tal vez tienes razón, acabo de reaccionar tan rápido –

Respuesta

16

Como Tsf señalado, el problema se debe a una bug in kernel 2.6.28. Dejo mi respuesta original, porque creo que podría ser útil de todos modos.

Desde la página de manual ulimit

-t The maximum amount of cpu time in seconds.

Lo que cuenta en lo que respecta a ulimit es tiempo de CPU única . Trate de iniciar su programa como este:

time myprogram 

que le mostrará la cantidad de tiempo de CPU que realmente utiliza.

Mi sospecha es que su bucle sin fin contiene sleep() y el tiempo de inactividad no contribuye al tiempo de CPU del proceso.

Esta es asesinado después de un segundo:

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

Esto parece funcionar para siempre (pero por supuesto no lo hace):

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

Medir el tiempo de CPU como esto ...

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

... y 5 segundos después ...

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

... solo 12 ms de tiempo de CPU utilizado.

Lo he probado en 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

No, no tengo ningún sueño en mi programa. Tenga en cuenta que funciona como se espera en Fedora, por lo que parece un problema de configuración en mi Ubuntu. – Tsf

+1

he publicado la misma cuestión en un tema diferente y que fue respondida por mí dirigir a: https://bugs.launchpad.net/ubuntu/jaunty/%2Bsource/linux/%2Bbug/361508 Eso explica el problema ! – Tsf

+0

Gracias, agregué su sugerencia en la parte superior de mi respuesta. Creo que es mejor si las personas ven primero el error del kernel. –

Cuestiones relacionadas