天天看點

記一次shell腳本推背景stopped的問題

我們知道linux 下shell可以被分為互動式腳本和非互動式腳本。

互動式腳本即 輸入指令之後shell會等待你的輸入,當你輸入之後指令會被立即送出進而執行。這個時候我們常見的終端bash,以及login提示等都是互動式指令。

非互動式腳本即shell解釋器不需要等待終端的輸入,自己去執行腳本中的指令,當遇到腳本中的EOF則結束。

互動式腳本因為需要等待終端指令的輸入,與終端進行互動,當将互動式腳本推背景;此時背景程式視圖讀取終端,此時終端驅動程式将檢測這種情況,并向背景作業發送一個特定信号SIGTTIN,該信号會停止此背景程式,并向使用者發送通知。最終推背景的程序會出現​

​stopped​

​​狀态。

互動式腳本的退背景使用​​

​./camSvr < /dev/null &​

​使用null作為輸入裝置,此時腳本可以正常執行。

繼續閱讀