sleep
これはかなり初心者的な質問です。たとえば、bash スクリプトからコマンドがトリガーされるとどうなるのか疑問に思います。そのジョブは優先度は低くなりますが、引き続き実行されますか?
答え1
通常、sleep
それはGNUsleep
プログラム。このプログラムはGNU関数を呼び出すxnanosleep
、これはLinuxを呼び出しますnanosleep
システムコール。そして:
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.
したがって、プロセスは定義上、実行中ではなく (優先度に関係なく) 一時停止されています。
これをテストします:
sleep 10 & ps aux | grep $!
[1] 25682
muru 25682 0.0 0.0 7196 620 pts/13 SN 04:10 0:00 sleep 10
のプロセス状態はSN
:
S interruptible sleep (waiting for an event to complete)
N low-priority (nice to other users)
は無視してくださいN
。最初はそのようになっていたと思います。したがって、 の有効な状態はsleep
ですinterruptible sleep
。