一、screen命令是什麼?
screen是乙個可以在多個程序之間多路復用乙個物理終端的全屏視窗管理器。screen中有會話的概念,使用者可以在乙個screen會話中建立多個screen視窗,在每乙個screen視窗中就像操作乙個真實的telnet/ssh連線視窗那樣。
二、如何安裝screen命令?
除部分精簡的系統或者定製的系統大部分都安裝了screen命令
如果沒有安裝
centos系統可以執行:yum install screen ;
debian/ubuntu系統執行:apt-get install screen 。
三、使用screen命令
screen -s lnmp ,screen就會建立乙個名字為lnmp的會話。
1.直接在命令列鍵入screen命令
[root@tivf06 ~]# screen
screen將建立乙個執行shell的全屏視窗。你可以執行任意shell程式,就像在ssh視窗中那樣。在該視窗中鍵入exit退出該視窗,
如果這是該screen會話的唯一視窗,該screen會話退出,否則screen自動切換到前乙個視窗。
2.screen命令後跟你要執行的程式。
[root@tivf06 ~]# screen vi test.c
screen建立乙個執行vi test.c的單視窗會話,退出vi將退出該視窗/會話。
3.以上兩種方式都建立新的screen會話。我們還可以在乙個已有screen會話中建立新的視窗。
在當前screen視窗中鍵入c-a c,即ctrl鍵+a鍵,之後再按下c鍵,screen 在該會話內生成乙個新的視窗並切換到該視窗。
1.2 暫時離開,保留screen會話中的任務或程式
當需要臨時離開時(會話中的程式不會關閉,仍在執行)可以用快捷鍵ctrl+a d(即按住ctrl,依次再按a,d)
1.3 恢復screen會話
當回來時可以再執行執行:screen -r lnmp 即可恢復到離開前建立的lnmp會話的工作介面。
如果忘記了,或者當時沒有指定會話名,可以執行:screen -ls screen會列出當前存在的會話列表,
恢復會話時可以使用:screen -r idnum 或者 screen -r name
例如:screen -r 11791 或者 screen -r test
11791代表 screen -ls下回話的id值
test代表 screen -ls下回話的名稱
1.4 關閉screen的會話
總結:
1、新建screen會話:直接輸入screen命令或者screen -s [會話名稱]
2、退出會話:按下組合鍵ctrl+a並鬆開,此時screen視窗等待命令,然後按下d並鬆開,退出screen視窗。
3、檢視當前系統所有screen會話:screen -ls
4、進入某個screen會話:screen -r [會話的pid]
5、在進入某個screen會話後,殺死screen會話:按下組合鍵ctrl+a並鬆開,此時screen視窗等待命令,
然後按下大寫的k(即組合鍵:shift+k)並鬆開,(系統提示是否要殺死)按下y確認殺死screen會話。
總結:當系統中只有乙個screen會話時,輸入:screen -r 即可進入這個會話,
當系統中有多個screen會話時,此時輸入同樣的命令,系統會列出當前所有screen回話,相當於命令:screen -ls
SSH斷開後讓程式繼續執行
shell支援作用控制,有以下命令 command 讓程序在後台執行 jobs 檢視當前在後台執行的程序 fg n 讓後台執行的程序n到前台來,這裡的n為job number,不是pid bg n 讓程序n到後台去,或讓後台暫停的程序繼續執行,n同上 ctrl z 將乙個正在前台執行的命令放到後台,...
關閉shell後讓程式繼續執行的方式
關閉shell後讓程式繼續執行的方式 最近在linux下執行了jmeter測試指令碼,啟動程式後,關閉shell後,然後再登入shell,發現啟動的指令碼停止了,莫名其妙。原來,如果直接執行指令碼,當關閉shell時,啟動的指令碼程序也跟著結束了。原因 當使用者登出 logout 或者網路斷開時,終...
使用者登出後,程式繼續執行
最近寫了乙個程式,需要在伺服器上執行,編完了以後,到伺服器執行,發現,用遠端登陸開啟這個程式,沒有問題,可是過了十分鐘,遠端伺服器自動登出了,程式也就終止。這樣,程式就不能正常工作。想了一天多的辦法,終於在今天把這個問題解決了。首先用.net寫個服務 新建乙個服務,在設計頁面上點右鍵,出現選單後,選...