1. 程式人生 > >長時間連線傳輸不斷守護程序命令

長時間連線傳輸不斷守護程序命令

Linux使用screen實現程序守護

2018-02-08 分類:Linux 閱讀(371) 評論(0) 

需求

在使用 SSH 或者telent 遠端登入到Linux 伺服器,執行一些需要很長時間才能完成的任務或者必須要長期不間斷執行的任務(比如系統備份、ftp 傳輸、挖礦等等)時,這些任務的共同點就是執行時間長,我們必須等待它們執行完畢,在此期間不能關掉視窗或者斷開連線,如果因為網路異常或其它因素導致突然斷開連線,遠端命令也會停止,只能重新連線後再執行,一切半途而廢了。所以程序守護是非常重要的,它能夠保證在斷開SSH或Telent後仍然繼續執行程序。

我在使用vps嘗試體驗一下挖礦過程時,便遇到了上面提到的問題:晚上11點正式部署好了程式,也能正常執行,於是就斷開連線、筆電關機。第二天 早上一看,挖礦程序已經停止了,於是便知道了自己的疏忽並及時找到了本文的解決方法,在此記錄。

screen的安裝

CentOS系統可以執行:yum install screen

Debian/Ubuntu系統執行:apt-get install screen

簡單使用

  • 輸入screen進入到screen的控制檯視窗。
  • 執行命令。
  • 按鍵盤的ctrl + a,再按下鍵盤d,退出screen視窗,左下角可以看到提示。
  • 檢視當前有哪些screen任務:執行screen -ls或者screen -list     執行結果的第一串數字就是程序id。
  • 恢復命令執行介面: 執行screen -r+程序id    eg:screen -r 15328
  • 關閉screen的會話:執行:exit ,會提示:[screen is terminating],表示已經成功退出screen會話。

screen引數

-A 將所有的視窗都調整為目前終端機的大小。
-d<作業名稱> 將指定的screen作業離線。
-h<行數> 指定視窗的緩衝區行數。
-m 即使目前已在作業中的screen作業,仍強制建立新的screen作業。
-r<作業名稱> 恢復離線的screen作業。
-R 先試圖恢復離線的作業。若找不到離線的作業,即建立新的screen作業。
-s 指定建立新視窗時,所要執行的shell
-S<作業名稱> 指定screen作業的名稱。
-v 顯示版本資訊。
-x 恢復之前離線的screen作業。
-ls或–list 顯示目前所有的screen作業。
-wipe 檢查目前所有的screen作業,並刪除已經無法使用的screen作業。

常用快捷鍵

  • Ctrl+a c :在當前screen會話中建立視窗
  • Ctrl+a w :視窗列表
  • Ctrl+a n :下一個視窗
  • Ctrl+a p :上一個視窗
  • Ctrl+a 0-9 :在第0個視窗和第9個視窗之間切換