一、背景
系統(tǒng)管理員經(jīng)常需要SSH 或者telent 遠(yuǎn)程登錄到Linux 服務(wù)器,經(jīng)常運(yùn)行一些需要很長(zhǎng)時(shí)間才能完成的任務(wù),比如系統(tǒng)備份、ftp 傳輸?shù)鹊。通常情況下我們都是為每一個(gè)這樣的任務(wù)開一個(gè)遠(yuǎn)程終端窗口,因?yàn)樗鼈儓?zhí)行的時(shí)間太長(zhǎng)了。必須等待它們執(zhí)行完畢,在此期間不能關(guān)掉窗口或者斷開連接,否則這個(gè)任務(wù)就會(huì)被殺掉,一切半途而廢了。
二、簡(jiǎn)介
GNU Screen是一款由GNU計(jì)劃開發(fā)的用于命令行終端切換的自由軟件。用戶可以通過該軟件同時(shí)連接多個(gè)本地或遠(yuǎn)程的命令行會(huì)話,并在其間自由切換。
GNU Screen可以看作是窗口管理器的命令行界面版本。它提供了統(tǒng)一的管理多個(gè)會(huì)話的界面和相應(yīng)的功能。
在前后臺(tái)系統(tǒng)中,中斷恢復(fù)時(shí)間很簡(jiǎn)單,只包括恢復(fù)cpu內(nèi)部寄存器值得時(shí)間和執(zhí)行中斷返回指令的時(shí)間。如果你正登錄在一個(gè)本地的systemd-logind用戶會(huì)話,且當(dāng)前沒有其它活動(dòng)的會(huì)話,那么以下命令無需root權(quán)限即可執(zhí)行。708cmdtoabort:通過opb命令終止一次運(yùn)行,每次檢修恢復(fù)也會(huì)記錄。
如果以上方法無法解決只能使用最后一招: 完全注冊(cè)dll:打開“運(yùn)行”輸入→cmd→回車 然后把下面這行字符復(fù)制到黑色cmd框里面去回車等待dll文件全部注冊(cè)完成就關(guān)閉可以了,為防止輸入錯(cuò)誤可以復(fù)制這條指令,然后在命令提示符后擊鼠標(biāo)右鍵→粘貼→回車,耐心等待linux命令大全,直到屏幕滾動(dòng)停止。 8.再不行,開始菜單,運(yùn)行 ,輸入cmd, 回車,在命令提示符下輸入(復(fù)制即可) : for %1 in (%windir%\\system32\\*.dll) do regsvr32.exe /s %1粘貼,回車,直到屏幕滾動(dòng)停止為止,重啟電腦。 輸入操作:從i/o設(shè)備拷貝數(shù)據(jù)到主存、輸出操作:從主存拷貝數(shù)據(jù)到i/o設(shè)備。
Screen可以讓一個(gè)或多個(gè)用戶從不同終端多次登錄一個(gè)會(huì)話,并共享會(huì)話的所有特性(比如可以看到完全相同的輸出)。它同時(shí)提供了窗口訪問權(quán)限的機(jī)制,可以對(duì)窗口進(jìn)行密碼保護(hù)。
GNU's Screen 官方站點(diǎn):
三、語法
# screen [-AmRvx -ls -wipe][-d <作業(yè)名稱>][-h <行數(shù)>][-r <作業(yè)名稱>][-s ][-S <作業(yè)名稱>]
參數(shù)說明
-A 將所有的視窗都調(diào)整為目前終端機(jī)的大小。
-d <作業(yè)名稱> 將指定的screen作業(yè)離線。
-h <行數(shù)> 指定視窗的緩沖區(qū)行數(shù)。
-m 即使目前已在作業(yè)中的screen作業(yè),仍強(qiáng)制建立新的screen作業(yè)。
-r <作業(yè)名稱> 恢復(fù)離線的screen作業(yè)。
-R 先試圖恢復(fù)離線的作業(yè)。若找不到離線的作業(yè),即建立新的screen作業(yè)。
-s 指定建立新視窗時(shí),所要執(zhí)行的shell。
-S <作業(yè)名稱> 指定screen作業(yè)的名稱。
-v 顯示版本信息。
-x 恢復(fù)之前離線的screen作業(yè)。
-ls或--list 顯示目前所有的screen作業(yè)。
-wipe 檢查目前所有的screen作業(yè),并刪除已經(jīng)無法使用的screen作業(yè)。
四、常用screen參數(shù)
screen -S yourname -> 新建一個(gè)叫yourname的session
screen -ls -> 列出當(dāng)前所有的session
screen -r yourname -> 回到y(tǒng)ourname這個(gè)session
screen -d yourname -> 遠(yuǎn)程detach某個(gè)session