您好,登錄后才能下訂單哦!
這篇文章將為大家詳細(xì)講解有關(guān)使用Screen管理遠(yuǎn)程會(huì)話的方法,小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。
在本地開發(fā)時(shí),經(jīng)常需要使用遠(yuǎn)程連接到Linux服務(wù)器,一開始我自己都是有幾個(gè)遠(yuǎn)程就開幾個(gè)SSH窗口,這種方法很原始很直接,但每次都受夠了密碼輸入,即使用了SSH免密碼登錄,也會(huì)覺得每次輸入SSH的命令一點(diǎn)都不快速,況且況且窗口開多了,也會(huì)很混亂,不易管理,這種情況,Linux上的工具也有很多,今天就學(xué)習(xí)一下screen
工具。
在介紹screen
工具時(shí),先討論一下,為什么連接服務(wù)器后,當(dāng)執(zhí)行長(zhǎng)時(shí)間的任務(wù)時(shí),我們關(guān)閉遠(yuǎn)程連接窗口,這個(gè)任務(wù)就被殺掉了呢?
在Linux/Unix中,有以下幾個(gè)概念:
進(jìn)程組(process group):一個(gè)或多個(gè)進(jìn)程的集合,每個(gè)進(jìn)程組都有一個(gè)唯一的進(jìn)程組ID;
會(huì)話期(session):一個(gè)或多個(gè)進(jìn)程組的集合,有唯一一個(gè)會(huì)話首進(jìn)程(session leader),會(huì)話期ID為首進(jìn)程ID;
會(huì)話期可以有一個(gè)單獨(dú)的會(huì)話終端,與控制終端連接的會(huì)話期首進(jìn)程叫控制進(jìn)程(controlling process),當(dāng)前與終端交互的進(jìn)程稱為前臺(tái)進(jìn)程組,其余進(jìn)程組稱為后臺(tái)進(jìn)程組。
工具POSIX.1定義:
掛斷信號(hào)(SIGHUP)默認(rèn)的動(dòng)作是終止程序;
當(dāng)終端接口檢測(cè)到網(wǎng)絡(luò)連接斷開,將發(fā)送SIGHUP信號(hào)給控制進(jìn)程(會(huì)話期首進(jìn)程);
如果會(huì)話期首進(jìn)程終止,則該信號(hào)發(fā)送到該會(huì)話期前臺(tái)進(jìn)程組;
一個(gè)進(jìn)程退出導(dǎo)致一個(gè)孤兒進(jìn)程組產(chǎn)生時(shí),如果人一個(gè)孤兒進(jìn)程組進(jìn)程處于STOP狀態(tài),則發(fā)送SIGHUP和SIGCONT信號(hào)到該進(jìn)程組中所有進(jìn)程。
因此當(dāng)網(wǎng)絡(luò)斷開或窗口關(guān)閉時(shí),控制進(jìn)程收到SIGHUP信號(hào)退出,會(huì)導(dǎo)致該會(huì)話期內(nèi)其他進(jìn)程退出。
打開兩個(gè)SSH終端窗口,在第一個(gè)中執(zhí)行ping
命令:
再另一個(gè)終端窗口中,找到ping
的進(jìn)程ID為22132,其父進(jìn)程ID為21803,即登錄zsh:
使用ps -xj
可以看到,登錄zsh(PID 21803)和ping在同一會(huì)話期,zsh為會(huì)話期首進(jìn)程,所以進(jìn)程組PGID為21803,ping所在的進(jìn)程組PGID為22132,為前臺(tái)進(jìn)程組。
這時(shí),我們關(guān)閉第一個(gè)SSH遠(yuǎn)程窗口,在另一個(gè)窗口中看到ping進(jìn)程被殺掉了:
這就發(fā)現(xiàn),當(dāng)我們執(zhí)行一個(gè)耗時(shí)的任務(wù)時(shí),如果關(guān)閉了這個(gè)窗口,這個(gè)任務(wù)進(jìn)程也就被殺掉了,并不是我們所期望的那樣在后臺(tái)繼續(xù)執(zhí)行。
現(xiàn)在,也不需要多說(shuō)screen
到底是干什么的了,直接說(shuō)怎么使用吧。
1、直接執(zhí)行screen
命令
screen
將創(chuàng)建一個(gè)執(zhí)行shell的全屏窗口,可以看到窗口的title已經(jīng)提示處于screen
程序中,在這個(gè)窗口中你可以隨便執(zhí)行命令,如果要退出輸入exit
命令。
2、如果你想新開一個(gè)窗口執(zhí)行另一個(gè)任務(wù),可以執(zhí)行:
// 方法1 按鍵盤Ctrl+a +c, 會(huì)心打開一個(gè)screen窗口 // 方法2 screen 需要執(zhí)行的任務(wù)的命令,比如: screen ping www.baidu.com</pre>
3、多個(gè)screen
窗口切換
方法1 鍵盤Ctrl+a +[0..9] 方法2 鍵盤Ctrl+a +n, 下一個(gè)screen窗口 鍵盤Ctrl+a +p, 上一個(gè)screen窗口</pre>
更多命令可以看下圖:
Screen是一個(gè)可以在多個(gè)進(jìn)程之間多路復(fù)用一個(gè)物理終端的窗口管理器,Screen中還有會(huì)話的概念,用戶可以在一個(gè)screen會(huì)話中創(chuàng)建多個(gè)screen窗口,而在每一個(gè)screen窗口中就像操作一個(gè)真實(shí)的SSH連接窗口那樣。
關(guān)于使用Screen管理遠(yuǎn)程會(huì)話的方法就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。