¿Por qué un sueño de 300 (5 minutos) puede durar varias horas en algún momento?

Tengo un MiniMac con el sistema OSX.

Mi guion es:

while true do echo "Sleep 300 seconds = 5 minutes" date sleep 300 echo "end of sleep" date done 

Quiero que se repita cada 5 minutos; pero en algún momento se suspende durante varias horas cuando hace esto "dormir 300", aquí está el resultado:

 Sleep 300 seconds = 5 minutes Fri Nov 8 15:52:49 CET 2013 end of sleep Fri Nov 8 15:57:49 CET 2013 Sleep 300 seconds = 5 minutes Fri Nov 8 15:57:49 CET 2013 end of sleep Fri Nov 8 16:02:49 CET 2013 Sleep 300 seconds = 5 minutes Fri Nov 8 16:02:49 CET 2013 end of sleep Fri Nov 8 16:20:59 CET 2013 Sleep 300 seconds = 5 minutes Fri Nov 8 16:20:59 CET 2013 Sleep 300 seconds = 5 minutes Fri Nov 8 15:52:49 CET 2013 end of sleep 

Esto suena como un process que tiene o está teniendo su buen nivel establecido en un nivel inferior. Yo confirmaría esto con el command:

 $ ps -eo "%p %y %x %c %n" | less 

La última columna es el valor bueno y debería ser 0 en la mayoría de los casos. Si se trata de algún otro valor entre -20 (progtwigción más favorable) y 19 (mínimo), entonces algo está estableciendo el valor agradable para este valor diferente.

Ejemplo

 $ ps -eo "%p %y %x %c %n"| head -10 PID TTY TIME COMMAND NI 1 ? 00:00:01 init 0 2 ? 00:00:00 kthreadd 0 3 ? 00:00:02 ksoftirqd/0 0 4 ? 00:00:03 migration/0 - 5 ? 00:00:00 watchdog/0 - 15 ? 00:00:06 events/0 0 19 ? 00:00:00 cpuset 0 20 ? 00:00:00 khelper 0 21 ? 00:00:00 netns 0 

Otras cosas

  1. Algo más que @ derobert's señaló. El time está sesgado de forma extraña en algunos de sus resultados. Puede ser que algo esté mal con tu reloj.

    Específicamente este bloque:

     Fri Nov 8 16:20:59 CET 2013 Sleep 300 seconds = 5 minutes Fri Nov 8 15:52:49 CET 2013 end of sleep 

    ¡Parece que volvimos a time aquí!

  2. Varias personas en comentarios han indicado que su sistema puede haberse quedado dormido o haber hibernado. Esta idea parece ser la mejor opción, ya que el sleep general usa poco time de CPU, como indica @Gilles en los comentarios de mi respuesta, por lo que normalmente no se vería afectado por el buen nivel que se está modificando.