㈠ 怎麼讓 screen 創建後自動執行一個shell命令
screen -r test -X '/root/test'
㈡ screen 怎麼進入 一個窗口
在linux開發中,我們經常用終端軟體連入linux伺服器進行一些操作,或者編輯代碼。
當需要編輯多個文件,並且經常要執行一些系統命令時,
不得已要開多個終端窗口連入伺服器或者來回進行文件切換或者退出文件編輯來執行系統命令,
造成效率低下而且繁瑣。如果經常遇到這樣的問題,那就應該嘗試使用以下linux的Screen工具了。
Screen是一個可以在多個進程之間多路復用一個物理終端的窗口管理器。
Screen中有會話的概念,用戶可以在一個screen會話中創建多個screen窗口,
在每一個screen窗口中就像操作一個真實的telnet/SSH連接窗口那樣。
在使用過程中可以退出screen,甚至可以關掉登錄窗口,下次再進去重新掛上screen會話,所有工作全部都會恢復。
第一步工作,肯定是先啟動screen了。很簡單,在linux命令行中輸入:screen即可,就進入了screen環境。
進入了就要退出,退出有兩種方式,
一個是完全退出,輸入exit就是完全退出。
另一個是Detached,CTRL-a+d(先按CTRL-a,然後按d字母),
就可以Detached了。Detached是一種術語叫法。
這兩種退出的區別就是exit是完全退出,不會進行session保存了。
而第二種仍然保持會話,用screen -r就可恢復到原來的工作狀態了!
剛剛說過,Screen是一個可以在多個進程之間多路復用一個物理終端的窗口管理器,
現在要體會他的強大之處了。
執行screen命令後就自動創建了一個window,
我們可以執行各種命令,進行文件編輯。
這是後我突然需要另外一個窗口來執行其他要工作很長時間的腳本、程序或者命令,就可以創建新的窗口來執行,
不會影響到當前工作環境了。
輸入CTRL-a+c(先按CTRL-a,然後按d字母),
會出現一個新的頁面命令行提示符,可以開始干自己的工作了!開始後,
怎麼切換回原來的window呢?有兩種方法,一是CTRL-a CTRL-a(按兩遍CTRL-a),
就可以順序在多個window中切換。或者CTRL-a+0-9(按CTRL-a後按0到9任意數字)
就會出現對應的window了。比如說我們第一次用screen進入的window編號是為0,
然後我們需要新的window來執行命令,就創建了一個新的window,編號為1。
現在我要切換回去了,直接按CTRL-a+0,就回到原先那個window啦。
除了一個screen可以包含多個window,也可以在創建多個screen。
創建多個screen也很簡單,退出screen(Detached退出模式),
然後再執行screen命令,就創建了2個screen。用screen -ls可以查看有多少個screen被創建。
執行screen -ls後,每個列出的screen有個pid編號,當我們要恢復某個screen的窗口時,
只需輸入screen -r pid 就可以恢復到指定screen了!
㈢ 如何使用screen
作linux伺服器管理員,經要使用ssh登陸遠程linux機器做些耗操作
許遇使用telnet或SSH遠程登錄linux,運行些程序些程序需要運行間(幾)程序運行程現中國絡故障或者客戶機故障候客戶機與遠程伺服器鏈接終端並且遠程伺服器沒結束命令迫終止
比SSH主機始批量scp命令ssh線程斷線scp進程斷遠程伺服器運行某些耗作業工作沒做完快要班退斷操作何才呢?
我利用screen命令解決問題實現斷SSH情況,伺服器繼續執行程序
screen命令?
Screen稱全屏窗口管理器用輕松物理終端獲虛擬終端效
Screen功能說明:
簡單說Screen進程間路復用物理終端窗口管理器,意味著能夠使用單終端窗口運行終端應用Screen概念用戶screen創建screen窗口每screen窗口像操作真實telnet/SSH連接窗口
Screen命令語:
screen [-AmRvx -ls -wipe][-d ][-h ][-r ][-s ][-S ]
Screen命令參數:
-A -[rR] 所視窗都調整目前終端機
-c filename 用指定filename文件替代screen配置文件』.screenrc』.
-d [pid.tty.host] 斷screen進程(使用該命令screen狀態定要Attached說用戶連screen)般進程名字pid.tty.host種形式表示(用screen -list命令看狀態)
-D [pid.tty.host] 與-d命令實現功能區別執行功踢掉原screen用戶並讓logout
-h 指定視窗緩沖區行數
-ls或–list 顯示目前所screen作業
-m 即使目前已作業screen作業仍強制建立新screen作業
-p number or name 預先選擇窗口
-r [pid.tty.host] 恢復離線screen進程斷進程需要指定[pid.tty.host]
-R 先試圖恢復離線作業若找離線作業即建立新screen作業
-s shell 指定建立新視窗所要執行shell
-S 指定screen作業名稱(用替代[pid.tty.host]命名式,簡化操作).
-v 顯示版本信息
-wipe 檢查目前所screen作業並刪除已經使用screen作業
-x 恢復前離線screen作業
Screen命令規用:
screen -d -r:連接screen進程該進程attached先踢掉遠端用戶再連接
screen -D -r:連接screen進程該進程attached先踢掉遠端用戶並讓logout再連接
screen -ls或者-list:顯示存screen進程用命令
screen -m:Screen進程用快捷鍵crtl+a c或者直接打screen創建新窗口,screen -m新建screen進程
screen -dm:新建screen並默認detached模式建連
screen -p number or name:預先選擇窗口
Screen實現台運行程序簡單步驟:
一> 要進行某項操作先使用命令創建Screen:
代碼:
[linux@user~]$ screen -S test一
二>接著面進行操作任務沒完要走使用命令保留Screen:
代碼:
[linux@user~]$ Ctrl+a+d #按Ctrl+a再按d即保留Screen
[detached] #顯示提示說明已經保留Screen
工作完直接輸入:
代碼:
[linux@user~]$ exit #表示功退
[screen is terminating]
三> 保留Screen使用命令查看:
代碼:
[linux@user~]$ screen -ls
There is a screen on:
9陸四9.test一 (Detached)
恢復Screen使用命令:
代碼:
[linux@user~]$ screen -r test一 (or 9陸四9)
Screen命令用快捷鍵
Ctrl+a c :創建窗口
Ctrl+a w :窗口列表
Ctrl+a n :窗口
Ctrl+a p :窗口
Ctrl+a 0-9 :第0窗口第9窗口間切換
Ctrl+a K(寫) :關閉前窗口並且切換窗口(退窗口該終端自終止並且退原始shell狀態)
exit :關閉前窗口並且切換窗口(退窗口該終端自終止並且退原始shell狀態)
Ctrl+a d :退前終端返載入screen前shell命令狀態
窗口
screen像許窗口管理器能支持窗口功能處理任務且同沒打新 用作系統管理員我要同四五SSH每shell我能要處理兩三任務使用screen需要一5SSH 一5登錄一5窗口等等使用screen每系統都配單獨我通screen管理系統同作業
要打新窗口需要使用「Ctrl-A」「c」創建新窗口顯示默認命令提示符例我運行top命令再打新窗口做其工作Top繼續留運行!親身實驗啟screen並運行top(註:節省空間我截斷屏幕)
啟top
代碼:
Mem: 50陸0二吧K av, 50059陸K used, 5四三二K free,
0K shrd, 一一漆5二K buff
Swap: 一0二0一一陸K av, 5三三二0K used, 9陸陸漆9陸K free
三9三陸陸0K cached
p> PID USER PRI NI SIZE RSS SHARE STAT %CPU %ME
陸5三吧 root 二5 0 一吧9二 一吧9二 59陸 R 四9.一 0.三
陸陸一四 root 一陸 0 一5四四 一5四四 陸陸吧 S 二吧.三 0.三
漆一9吧 admin 一5 0 一一0吧 一一0四 吧二吧 R 5.陸 0.二
現通「Ctrl-A」「c」打新窗口
代碼:
[admin@ensim admin]$
To get back to top, use "Ctrl-A "n"
Mem: 50陸0二吧K av, 5005吧吧K used, 5四四0K free,
0K shrd, 一一9陸0K buff
Swap: 一0二0一一陸K av, 5三三二0K used, 9陸陸漆9陸K free
三9二二二0K cached
p> PID USER PRI NI SIZE RSS SHARE STAT %CPU %ME
陸5三吧 root 二5 0 一吧9二 一吧9二 59陸 R 四吧.三 0.三
陸陸一四 root 一5 0 一5四四 一5四四 陸陸吧 S 三0.漆 0.三
創建窗口通「Ctrl-A」「n」切換窗口或者使用「Ctrl-A」「p」返窗口其窗口工作其窗口每程序都保持運行
退screen
兩種式退screen第種登shell通「Ctrl-A」「K」或者「exit」終止窗口前窗口關閉打窗口直接轉其餘僅窗口退screen
另外種退screen式離窗口種式簡單關閉窗口進程仍運行著確定要間執行進程需要關閉SSH程序便使用「Ctrl-A」「d」離窗口使shell所screen窗口都待稍重新接管(譯者註:像我實際化窗口程序台運行)
接管
假設用著screen花間編譯著程序突間連接斷請用擔screen保存編譯進度重新登錄操作系統使用screen列表工具查看哪些運行:
代碼:
[root@gigan root]# screen -ls
There are screens on:
三一陸一9.ttyp二.gigan (Detached)
四漆三一.ttyp二.gigan (Detached)
二 Sockets in /tmp/screens/S-root.
我兩同screen要需要重新接管其使用恢復窗口命令:
代碼:
[root@gigan root]#screen -r 三一陸一9.ttyp二.gigan
需要使用 -r 選項再接名現便重新剛才屏幕令欣喜任何重新接管論辦公室其客戶端都使用screen啟項工作退
窗口
screen像許窗口管理器能支持窗口功能處理任務且同沒打新 用作系統管理員我要同四五SSH每shell我能要處理兩三任務使用screen需要一5SSH 一5登錄一5窗口等等使用screen每系統都配單獨我通screen管理系統同作業
要打新窗口需要使用「Ctrl-A」「c」創建新窗口顯示默認命令提示符例我運行top命令再打新窗口做其工作Top繼續留運行!親身實驗啟screen並運行top(註:節省空間我截斷屏幕)
啟top
代碼:
Mem: 50陸0二吧K av, 50059陸K used, 5四三二K free,
0K shrd, 一一漆5二K buff
Swap: 一0二0一一陸K av, 5三三二0K used, 9陸陸漆9陸K free
三9三陸陸0K cached
p> PID USER PRI NI SIZE RSS SHARE STAT %CPU %ME
陸5三吧 root 二5 0 一吧9二 一吧9二 59陸 R 四9.一 0.三
陸陸一四 root 一陸 0 一5四四 一5四四 陸陸吧 S 二吧.三 0.三
漆一9吧 admin 一5 0 一一0吧 一一0四 吧二吧 R 5.陸 0.二
現通「Ctrl-A」「c」打新窗口
代碼:
[admin@ensim admin]$
To get back to top, use "Ctrl-A "n"
Mem: 50陸0二吧K av, 5005吧吧K used, 5四四0K free,
0K shrd, 一一9陸0K buff
Swap: 一0二0一一陸K av, 5三三二0K used, 9陸陸漆9陸K free
三9二二二0K cached
p> PID USER PRI NI SIZE RSS SHARE STAT %CPU %ME
陸5三吧 root 二5 0 一吧9二 一吧9二 59陸 R 四吧.三 0.三
陸陸一四 root 一5 0 一5四四 一5四四 陸陸吧 S 三0.漆 0.三
創建窗口通「Ctrl-A」「n」切換窗口或者使用「Ctrl-A」「p」返窗口其窗口工作其窗口每程序都保持運行
退screen
兩種式退screen第種登shell通「Ctrl-A」「K」或者「exit」終止窗口前窗口關閉打窗口直接轉其餘僅窗口退screen
另外種退screen式離窗口種式簡單關閉窗口進程仍運行著確定要間執行進程需要關閉SSH程序便使用「Ctrl-A」「d」離窗口使shell所screen窗口都待稍重新接管(譯者註:像我實際化窗口程序台運行)
接管
假設用著screen花間編譯著程序突間連接斷請用擔screen保存編譯進度重新登錄操作系統使用screen列表工具查看哪些運行:
代碼:
[root@gigan root]# screen -ls
There are screens on:
三一陸一9.ttyp二.gigan (Detached)
四漆三一.ttyp二.gigan (Detached)
二 Sockets in /tmp/screens/S-root.
我兩同screen要需要重新接管其使用恢復窗口命令:
代碼:
[root@gigan root]#screen -r 三一陸一9.ttyp二.gigan
需要使用 -r 選項再接名現便重新剛才屏幕令欣喜任何重新接管論辦公室其客戶端都使用screen啟項工作
㈣ Linux怎麼使用screen命令
作為linux伺服器管理員,經常要使用ssh登陸到遠程linux機器上做一些耗時的操作。 也許你遇到過使用telnet或SSH遠程登錄linux,運行一些程序。如果這些程序需要運行很長時間(幾個小時),而程序運行過程中出現網路故障,或者客戶機故障,這時候客戶機與遠程伺服器的鏈接將終端,並且遠程伺服器沒有正常結束的命令將被迫終止。 又比如你SSH到主機上後,開始批量的scp命令,如果這個ssh線程斷線了,scp進程就中斷了。在遠程伺服器上正在運行某些耗時的作業,但是工作還沒做完快要下班了,退出的話就會中斷操作了,如何才好呢? 我們利用screen命令可以很好的解決這個問題。實現在斷開SSH的情況下,在伺服器上繼續執行程序。 那什麼是screen命令? Screen被稱之為一個全屏窗口管理器,用他可以輕松在一個物理終端上獲得多個虛擬終端的效果。 Screen功能說明: 簡單來說,Screen是一個可以在多個進程之間多路復用一個物理終端的窗口管理器,這意味著你能夠使用一個單一的終端窗口運行多終端的應用。Screen中有會話的概念,用戶可以在一個screen會話中創建多個screen窗口,在每一個screen窗口中就像操作一個真實的telnet/SSH連接窗口那樣。 Screen命令語法: screen [-AmRvx -ls -wipe][-d <作業名稱>][-h <行數>][-r <作業名稱>][-s ][-S <作業名稱>] Screen命令參數: -A -[rR] 將所有的視窗都調整為目前終端機的大小。 -c filename 用指定的filename文件替代screen的配置文件’.screenrc’. -d [pid.tty.host] 斷開screen進程(使用該命令時,screen的狀態一定要是Attached,也就是說有用戶連在screen里)。一般進程的名字是以pid.tty.host這種形式表示(用screen -list命令可以看出狀態)。 -D [pid.tty.host] 與-d命令實現一樣的功能,區別就是如果執行成功,會踢掉原來在screen里的用戶並讓他logout。 -h <行數> 指定視窗的緩沖區行數。 -ls或–list 顯示目前所有的screen作業。 -m 即使目前已在作業中的screen作業,仍強制建立新的screen作業。 -p number or name 預先選擇一個窗口。 -r [pid.tty.host] 恢復離線的screen進程,如果有多個斷開的進程,需要指定[pid.tty.host] -R 先試圖恢復離線的作業。若找不到離線的作業,即建立新的screen作業。 -s shell 指定建立新視窗時,所要執行的shell。 -S <作業名稱> 指定screen作業的名稱。(用來替代[pid.tty.host]的命名方式,可以簡化操作). -v 顯示版本信息。 -wipe 檢查目前所有的screen作業,並刪除已經無法使用的screen作業。 -x 恢復之前離線的screen作業。 Screen命令的常規用法: screen -d -r:連接一個screen進程,如果該進程是attached,就先踢掉遠端用戶再連接。 screen -D -r:連接一個screen進程,如果該進程是attached,就先踢掉遠端用戶並讓他logout再連接 screen -ls或者-list:顯示存在的screen進程,常用命令 screen -m:如果在一個Screen進程里,用快捷鍵crtl+a c或者直接打screen可以創建一個新窗口,screen -m可以新建一個screen進程。 screen -dm:新建一個screen,並默認是detached模式,也就是建好之後不會連上去。 screen -p number or name:預先選擇一個窗口。 Screen實現後台運行程序的簡單步驟: 1> 要進行某項操作時,先使用命令創建一個Screen: 代碼如下: [linux@user~]$ screen -S test1 2>接著就可以在裡面進行操作了,如果你的任務還沒完成就要走開的話,使用命令保留Screen: 代碼如下: [linux@user~]$ Ctrl+a+d #按Ctrl+a,然後再按d即可保留Screen [detached] #這時會顯示出這個提示,說明已經保留好Screen了 如果你工作完成的話,就直接輸入: 代碼如下: [linux@user~]$ exit #這樣就表示成功退出了 [screen is terminating] 3> 如果你上一次保留了Screen,可以使用命令查看: 代碼如下: [linux@user~]$ screen -ls There is a screen on: 9649.test1 (Detached) 恢復Screen,使用命令: 代碼如下: [linux@user~]$ screen -r test1 (or 9649) Screen命令中用到的快捷鍵 Ctrl+a c :創建窗口 Ctrl+a w :窗口列表 Ctrl+a n :下一個窗口 Ctrl+a p :上一個窗口 Ctrl+a 0-9 :在第0個窗口和第9個窗口之間切換 Ctrl+a K(大寫) :關閉當前窗口,並且切換到下一個窗口(當退出最後一個窗口時,該終端自動終止,並且退回到原始shell狀態) exit :關閉當前窗口,並且切換到下一個窗口(當退出最後一個窗口時,該終端自動終止,並且退回到原始shell狀態) Ctrl+a d :退出當前終端,返回載入screen前的shell命令狀態 多窗口 screen,像許多的窗口管理器一樣,能支持多窗口。這個功能在處理多個任務且同時沒有打開新的會話時 很有用。作為一個系統管理員,我常常要同時開四五個SSH會話。在每個shell下,我可能要處理兩三個任務。不使用screen的話,需要15個SSH 會話,15次登錄,15個窗口等等。使用screen,每個系統都分配到一個單獨的會話中,我通過screen來管理系統上不同的作業。 要打開新的窗口,只需要使用“Ctrl-A”“c”。創建的新的窗口會顯示一個默認的命令提示符。例如,我可以運行top命令後再打開一個新的窗口來做其它的工作。Top繼續留在那運行!可以親身實驗一下,啟動screen並運行top。(註:為了節省空間我截斷了多個屏幕。) 啟動top 代碼如下: Mem: 506028K av, 500596K used, 5432K free, 0K shrd, 11752K buff Swap: 1020116K av, 53320K used, 966796K free 393660K cached < p> PID USER PRI NI SIZE RSS SHARE STAT %CPU %ME 6538 root 25 0 1892 1892 596 R 49.1 0.3 6614 root 16 0 1544 1544 668 S 28.3 0.3 7198 admin 15 0 1108 1104 828 R 5.6 0.2 現在可以通過“Ctrl-A”“c”來打開一個新窗口 代碼如下: [admin@ensim admin]$ To get back to top, use "Ctrl-A "n" Mem: 506028K av, 500588K used, 5440K free, 0K shrd, 11960K buff Swap: 1020116K av, 53320K used, 966796K free 392220K cached < p> PID USER PRI NI SIZE RSS SHARE STAT %CPU %ME 6538 root 25 0 1892 1892 596 R 48.3 0.3 6614 root 15 0 1544 1544 668 S 30.7 0.3 你可以創建多個窗口然後通過“Ctrl-A”“n”切換到下一個窗口,或者使用“Ctrl-A”“p”返回上一個窗口。當你在其它窗口工作時,其它窗口的每個程序都會保持運行。 退出screen 有兩種方式退出screen。第一種和登出一個shell一樣,你可以通過“Ctrl-A”“K”或者“exit”來終止一個窗口。這樣當前的窗口會被關閉,如果你打開了多個窗口,你就會直接轉到其餘中的一個,而如果是僅有的一個窗口時,你就退出了screen。 另外一種退出screen的方式是分離窗口。這種方式只是簡單地關閉了窗口但進程仍運行著。如果你有確定要長時間執行的進程,還需要關閉SSH程序時,你便可以使用“Ctrl-A”“d”分離窗口。這會使你回到shell中。所有的screen窗口都待在那裡,你可以稍後重新接管它們。(譯者註:這很像我們實際中的最小化窗口和程序後台運行) 接管會話 假設你正用著screen花了很長時間編譯著一個程序,突然間你的連接斷開了。請不用擔心,screen會保存你的編譯進度。重新登錄你的操作系統後使用screen列表工具查看有哪些會話正在運行: 代碼如下: [root@gigan root]# screen -ls There are screens on: 31619.ttyp2.gigan (Detached) 4731.ttyp2.gigan (Detached) 2 Sockets in /tmp/screens/S-root. 在這里,我有兩個不同的screen會話。要需要重新接管其中一個,使用恢復窗口的命令: 代碼如下: [root@gigan root]#screen -r 31619.ttyp2.gigan 只需要使用 -r 選項再接會話的名,現在你便可以重新回到剛才的屏幕。令人欣喜的是,你還可以在任何地方重新接管。不論在辦公室還是其它客戶端上,你都可以使用screen來啟動一項工作然後退出。 多窗口 screen,像許多的窗口管理器一樣,能支持多窗口。這個功能在處理多個任務且同時沒有打開新的會話時 很有用。作為一個系統管理員,我常常要同時開四五個SSH會話。在每個shell下,我可能要處理兩三個任務。不使用screen的話,需要15個SSH 會話,15次登錄,15個窗口等等。使用screen,每個系統都分配到一個單獨的會話中,我通過screen來管理系統上不同的作業。 要打開新的窗口,只需要使用“Ctrl-A”“c”。創建的新的窗口會顯示一個默認的命令提示符。例如,我可以運行top命令後再打開一個新的窗口來做其它的工作。Top繼續留在那運行!可以親身實驗一下,啟動screen並運行top。(註:為了節省空間我截斷了多個屏幕。) 啟動top 代碼如下: Mem: 506028K av, 500596K used, 5432K free, 0K shrd, 11752K buff Swap: 1020116K av, 53320K used, 966796K free 393660K cached < p> PID USER PRI NI SIZE RSS SHARE STAT %CPU %ME 6538 root 25 0 1892 1892 596 R 49.1 0.3 6614 root 16 0 1544 1544 668 S 28.3 0.3 7198 admin 15 0 1108 1104 828 R 5.6 0.2 現在可以通過“Ctrl-A”“c”來打開一個新窗口 代碼如下: [admin@ensim admin]$ To get back to top, use "Ctrl-A "n" Mem: 506028K av, 500588K used, 5440K free, 0K shrd, 11960K buff Swap: 1020116K av, 53320K used, 966796K free 392220K cached < p> PID USER PRI NI SIZE RSS SHARE STAT %CPU %ME 6538 root 25 0 1892 1892 596 R 48.3 0.3 6614 root 15 0 1544 1544 668 S 30.7 0.3 你可以創建多個窗口然後通過“Ctrl-A”“n”切換到下一個窗口,或者使用“Ctrl-A”“p”返回上一個窗口。當你在其它窗口工作時,其它窗口的每個程序都會保持運行。 退出screen 有兩種方式退出screen。第一種和登出一個shell一樣,你可以通過“Ctrl-A”“K”或者“exit”來終止一個窗口。這樣當前的窗口會被關閉,如果你打開了多個窗口,你就會直接轉到其餘中的一個,而如果是僅有的一個窗口時,你就退出了screen。 另外一種退出screen的方式是分離窗口。這種方式只是簡單地關閉了窗口但進程仍運行著。如果你有確定要長時間執行的進程,還需要關閉SSH程序時,你便可以使用“Ctrl-A”“d”分離窗口。這會使你回到shell中。所有的screen窗口都待在那裡,你可以稍後重新接管它們。(譯者註:這很像我們實際中的最小化窗口和程序後台運行) 接管會話 假設你正用著screen花了很長時間編譯著一個程序,突然間你的連接斷開了。請不用擔心,screen會保存你的編譯進度。重新登錄你的操作系統後使用screen列表工具查看有哪些會話正在運行: 代碼如下: [root@gigan root]# screen -ls There are screens on: 31619.ttyp2.gigan (Detached) 4731.ttyp2.gigan (Detached) 2 Sockets in /tmp/screens/S-root. 在這里,我有兩個不同的screen會話。要需要重新接管其中一個,使用恢復窗口的命令: 代碼如下: [root@gigan root]#screen -r 31619.ttyp2.gigan 只需要使用 -r 選項再接會話的名,現在你便可以重新回到剛才的屏幕。令人欣喜的是,你還可以在任何地方重新接管。不論在辦公室還是其它客戶端上,你都可以使用screen來啟動一項工作然後退出。
㈤ linux命令nohup和screen命令的區別
nohup讓程序在後台繼續運行
常用命令:nohup ./test.sh & 【如果運行成功則默認會將標准輸出重定向到當前目錄的nohup.out文件中,當然可以自己重定向輸出信息】
當需要將nohup後台運行的程序調到前台時,先jobs命令查看後台job編號,用 fg %n命令可以調回到前台運行(n是job的編號)。
PS:單獨的&時可以讓命令後台運行的,知識如果ssh會話斷掉,&的命令也會自動退出。
screen讓程序後台執行--一個強大的工具
簡 單來說,Screen是一個可以在多個進程之間多路復用一個物理終端的窗口管理器。Screen中有會話的概念,用戶可以在一個screen會話中創建多 個screen窗口,在每一個screen窗口中就像操作一個真實的telnet/SSH連接窗口那樣。
㈥ linux 怎麼刪除一個screen
「首 先用screen [-S]命令建立一個session,然後就可以在這個session中建立多個window了。使用screen [-S]可以建立多個session,而每個session又可以建立多個window。在不同的window之間可以用Ctrl-A n/p等命令來切換。而想要在多個session之間切換,則需要你Ctrl-A d回到登錄session(就像一棵大樹的根),然後再通過screen -ls查看有哪些session,然後使用screen -r來決定恢復到哪個session。對於已經Attached Session則不能直接screen -r,需要先screen -d,然後才能screen -r」
㈦ linux中screen命令一般有哪些應用場景
1.xshell,securecrt等軟體可以開很多tab同時操作,screen可以在一個終端里模擬很多終端,一樣方便。
2.斷電或者藍屏,終端斷了,伺服器端所有程序收到hup信號,前台任務全部終止,各種工作環境全部丟失。如果在screen里邊操作,那沒問題,下次登錄到伺服器上,連上screen,恢復之前的一切,繼續來。
有不可間斷,還不能放後台的任務,用screen,是解脫你的好辦法。
3.screen可以多人同時觀看同一個終端,做講解之類的時候很方便。
㈧ Linux命令nohup和screen命令的區別
nohup 後台運行忽略中斷信號 相當於一個不死進程
screen 可以理解為開啟了一個不死界面環境
㈨ Sheel腳本如何對正在運行的screen發出指令·
1、執行./run.sh &即可,有時候我們擔心執行任務過程中,網路斷了或者終端超時退出
2、可以用screen命令完成
centos用yum install screen安裝
執行screen命令,屏幕閃了一下
執行腳本./a.sh
按CTRL+A+D退出。
ps -ef|grep a.sh發現a.sh還在執行
3、screen -r 回去
4、如果有多個screen
screen -list檢查
根據ID返回,例如screen -r 19708
5、exit 退出screen或者用CTRL+d快捷
㈩ linux screen 命令放入腳本怎麼不執行
因為除了screen的語句都是發給你執行shell腳本的終端的,你比如打個echo 'test' 運行腳本,這時你在screen里的話 會發現什麼也沒有,但你退出會發現列印了 test
你如果想不被kill掉的話,可以用nohup cmd & 試試