我們知道linux 下shell可以被分為互動式腳本和非互動式腳本。
互動式腳本即 輸入指令之後shell會等待你的輸入,當你輸入之後指令會被立即送出進而執行。這個時候我們常見的終端bash,以及login提示等都是互動式指令。
非互動式腳本即shell解釋器不需要等待終端的輸入,自己去執行腳本中的指令,當遇到腳本中的EOF則結束。
互動式腳本因為需要等待終端指令的輸入,與終端進行互動,當将互動式腳本推背景;此時背景程式視圖讀取終端,此時終端驅動程式将檢測這種情況,并向背景作業發送一個特定信号SIGTTIN,該信号會停止此背景程式,并向使用者發送通知。最終推背景的程序會出現
stopped
狀态。
互動式腳本的退背景使用
./camSvr < /dev/null &
使用null作為輸入裝置,此時腳本可以正常執行。