Normalmente, sleep
é o programa GNU sleep
. Este programa chama a função GNU xnanosleep
, que por sua vez chama a nanosleep
chamada de sistema do Linux. E:
nanosleep() suspends the execution of the calling thread until either
at least the time specified in *req has elapsed, or the delivery of a
signal that triggers the invocation of a handler in the calling thread
or that terminates the process.
Portanto, o processo, por definição, não está em execução (seja qual for a prioridade), mas está suspenso.
Testando isso:
sleep 10 & ps aux | grep $!
[1] 25682
muru 25682 0.0 0.0 7196 620 pts/13 SN 04:10 0:00 sleep 10
O estado do processo é SN
:
S interruptible sleep (waiting for an event to complete)
N low-priority (nice to other users)
Ignore o N
, acho que foi assim que começou. Então, o estado efetivo de sleep
é interruptible sleep
.