VPS Linux SSH 客戶端斷開后保持進程繼續運行配置方法——screen


前言

Linux中,我們經常會做一些關於數據的操作(備份、傳輸、壓縮等)或是要在后台持續的運行一些程序。由於,工作的數據量很大或者工作要持續很長的時間,我們就必須保證這個終端的啟動,一旦終端關閉了,它所運行的進程也會關閉,我們所做的工作就可能前功盡棄。但是,即使我們不主動的關閉終端,終端有的時候也會應為一些原因(網絡、鎖屏等)而中斷,導致我們的工作進度清零。

有很多種方法,這里只介紹screen命令。

screen命令的優點

支持會話恢復

當我們開啟screen后,只要screen進程沒有終止,其內部運行的會話都可以恢復。網絡連接中斷臨時,用戶也可以進入開啟的screen中,對中斷的會話的進行控制(恢復或刪除)。
通常的用法是在暫時離開的時候,讓在screen中運行的會話保持正常運行並將Screen切換到后台。

支持多窗口

當使用screen時,可以開啟多個窗口,讓每個會話都獨立運行到不同的窗口,並擁有各自的編號、名稱等。用戶可以通過這些編號及名稱進入不同的窗口。

會話共享

Screen可以讓一個或多個用戶從不同終端登錄一個會話,並共享會話。使用戶登陸同一會話的用戶看到同一會話內容。
同時它可以提供窗口訪問權限的設置,對窗口進行密碼保護。

screen的參數

-4             僅將主機名解析到IPv4地址
-6             僅將主機名解析到IPv6地址
-A            將所有的視窗適應當前終端屏幕的大小
-d            將指定的screen作業離線
-h lines      指定視窗的緩沖區行數
-m             即使目前已在作業中的screen作業,仍強制建立新的screen作業
-r             恢復(Reattach)離線(detach)的screen作業
-R            先試圖恢復離線的作業。若找不到離線的作業,即建立新的screen作業
-s shell      建立新視窗時(使用shell,而不是$SHELL
-S             創建並指定screen作業的名稱
-U             指定screen使用UTF-8編碼
-v            顯示版本信息
-x            進入(Attach)之前離線的screen作業
-ls或-list    顯示目前所有的screen作業
-wipe         檢查目前所有的screen作業,並刪除已經無法使用的screen作業

screen最常用操作

screen啟動后,會創建第一個窗口,默認窗口screen 0 (從0開始)

外觀上看,就像是開了一個新的終端。

 新建一個作業

 指定名字是為了便於區分

screen -S 作業名稱

如:screen -S test 創建一個名字為test的作業

 列出當前所有的作業

screen -ls

 進入未離線(Attached)作業

screen -x 作業序號或者名稱

screen -x 3985  #進入序號為3985的作業中
或者
screen -x test  #進入名稱為test的作業中

 進入已離線(Detached)作業

screen -r 作業序號或者名稱

screen -r 3985  #回到序號為3985的作業中
或者
screen -r test  #回到名稱為test的作業中

遠程結束某個作業

screen -d 作業名稱

screen -d test

 

screen中的命令用法

screen下使用ctrl+a進入命令模式

這里只講一下退出命令:

退出screen的作業時,有兩種方式:

  1. Crtl-a  +d     保存進程並退出作業(程序在screen中繼續運行,screen -ls 可查看)
  2. Crtl-a + k 或exit    退出作業和進程(程序終止,screen -ls 不可查看)

 

 

 參考鏈接:https://www.tok9.com/archives/256/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM