這是一個初學者問題。sleep
例如,我想知道從 bash 腳本觸發命令時會發生什麼。該作業仍會運行,但優先順序較低?
答案1
通常,sleep
是個GNUsleep
程式.該程式呼叫GNU函數xnanosleep
,這又呼叫 Linuxnanosleep
系統調用。和:
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
。