1. 程式人生 > >避免終端斷掉,保存回話的方法

避免終端斷掉,保存回話的方法

避免終端斷掉 保存回話的方法

避免終端斷掉,保存回話的方法
免疫宗
nohup命令

nohup命令可以將程序以忽略掛起信號的方式運行起來,被運行的程序的輸出信息將不會顯示到終端

命令格式

nohup 具體要執行的命令 [ & ]

nohup應用
nohup ping www.baidu.com &
[1] 18106
可以使用jobs來查看job ID對應的具體命令
jobs 
[1]+  Running                 nohup ping www.baidu.com &
使用fg加上jobID,講後臺命令調用至前臺
fg %1
nohup ping www.baidu.com
如果我們運行了多個nohup,如果都輸入到nohuo.out不方便查找,可以指定輸出文件
nohup ping www.baidu.com >ping_baidu.txt &
標準輸出和錯誤輸出在同一個文件中
nohup ping www.baidu.omc >ping_baidu.txt 2&1 & 
如果輸出的結果不重要可以輸出到/dev/null
nohup ping www.baidu.com 2>/dev/null 1>&2 &
如何查看後臺運行的結果
nohup rm /tmp/nonexist.file >nohup.out 2>&1 & 
echo $?
disown命令
如果命令之前忘記加nohup,而命令運行一半,通過作業調度和disown解決
如下所示:
ping www.baidu.com >output.txt    這時候忘記輸入nohup
執行 bg把該作業放到後臺
bg %1 
jobs 
執行disown命令,從作業中移除,不能用jobs查看
disown -h %1 
ps -ef | grep ping 可以查看
會話宗
setid命令

setid命令是能夠讓進程在一個新的會話中運行,從而避開當前會話的SIGHUP信號

setid ping www.ibm.com 
ps -ef | grep www.ibm.com
screen命令

Screen是一款由GNU計劃開發的用於命令行終端切換的自由軟件。用戶可以通過該軟件同時連接多個本地或遠程的命令行會話,並在其間自由切換

命令格式:

screen [-AmRvx -ls -wipe][-d <作業名稱>][-h <行數>][-r <作業名稱>][-s ][-S <作業名稱>]

選項:
-A  將所有的視窗都調整為目前終端機的大小
-d <作業名稱>  將指定的screen作業離線
-h <行數>  指定視窗的緩沖區行數
-m  即使目前已在作業中的screen作業,仍強制建立新的screen作業
-r <作業名稱>  恢復離線的screen作業
-R  先試圖恢復離線的作業。若找不到離線的作業,即建立新的screen作業
-s  指定建立新視窗時,所要執行的shell
-S <作業名稱>  指定screen作業的名稱
-v  顯示版本信息
-x  恢復之前離線的screen作業
-ls或--list  顯示目前所有的screen作業
-wipe  檢查目前所有的screen作業,並刪除已經無法使用的screen作業。
常用的screen參數
screen -S yourname -> 新建一個叫yourname的session
screen -ls -> 列出當前所有的session
screen -r yourname -> 回到yourname這個session
screen -d yourname -> 遠程detach某個session 
screen -d -r yourname -> 結束當前session並回到yourname這個session
screen應用
#創建一個新窗口
screen -S david 
screen -A -m  -d -S screen_ping ping www.baidu.com & 
# 列出當前會話
screen -ls
# 重新連接會話
screen -r 12865
tmux命令
Tmux 是一個工具,用於在一個終端窗口中運行多個終端會話
安裝tmux
centos、Redhat、Fedora
yum install tmux 
Ubuntu
apt-get install tmux 
啟動tmux
tmux new -s roclinux
在創建一個新的窗口
ctrl + b鍵同時,然後松開按c鍵
窗口之間的切換
ctrl + b鍵同時,然後松開按0鍵(按相應的數字鍵進行切換)
切斷tmux與辦公電腦的橋梁
ctrl + b鍵同時,然後松開按d鍵
tmux環境消失,只有一行提示
tmux new -s roclinux 
[detached]
查看tmux狀態
mux ls 
roclinux: 3 windows (created Sat Sep  2 14:32:27 2017)
tmux a -t roclinux


避免終端斷掉,保存回話的方法