Gnu-Screen

是否可以在腳本中判斷它是否從 GNU 螢幕中執行?

  • October 3, 2012

我們在遠端伺服器上有一個長時間執行的程序,該程序不時手動啟動。不幸的是,用於連接和啟動作業的 ssh 會話可能會遇到 Internet 連接中斷、核心恐慌以及許多其他挑戰。

螢幕似乎是確保過程不中斷的完美方式。但是,依靠一個人總是記住啟動螢幕然後執行腳本來啟動程序是一個等待發生的問題。有沒有辦法從腳本中檢查是否從螢幕內呼叫腳本?如果是,則該過程將繼續,否則腳本將退出並顯示一條消息,指示使用者首先執行螢幕。

有一個環境變數。如果它在螢幕內執行,$TERM將是screen. 就這麼簡單;只做一個 if 就可以了。例如,

if [ $TERM != 'screen' ]; then echo foo; else echo bar; fi

在螢幕中時會回顯條;foo 否則。

當您使用螢幕時,為什麼不使用“nohup”執行腳本?這也將確保它在您斷開連接時繼續執行。

它預設輸出到文件,因此您可以根據需要使用其他工具來監視腳本輸出。

引用自:https://serverfault.com/questions/434306