Dies ist eher eine Anfängerfrage. Ich frage mich, was passiert, wenn sleep
der Befehl beispielsweise von einem Bash-Skript ausgelöst wird. Würde dieser Job weiterhin ausgeführt, allerdings mit niedrigerer Priorität?
Antwort1
Normalerweisesleep
ist derGNUsleep
Programm. Dieses Programm ruft die GNU-Funktionxnanosleep
, das wiederum den Linuxnanosleep
Systemaufruf. Und:
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.
Der Prozess wird also per Definition nicht ausgeführt (unabhängig von der Priorität), sondern ist angehalten.
Das hier testen:
sleep 10 & ps aux | grep $!
[1] 25682
muru 25682 0.0 0.0 7196 620 pts/13 SN 04:10 0:00 sleep 10
DerProzesszustandIst SN
:
S interruptible sleep (waiting for an event to complete)
N low-priority (nice to other users)
Ignorieren Sie das N
, ich nehme an, so war es am Anfang. Der effektive Zustand von sleep
ist also interruptible sleep
.