ssh 背景執行的小技巧
用 ssh 配合背景執行工作,可以省下很多時間,尤其是 COPY 目錄跟抓檔這種耗時的工作,如果能配合背景執行,就不用開一堆 ssh 的視窗了。
現在我們來看看如何做呢?
# wget http://www.realvnc.com/dist/vnc-4.0b5-x86_linux.tar.gz
想先做點其它的事,按下 Ctrl+Z 就是先離開這個工作:
[1]+ Stopped ncftp
[1] 就是這項工作的代碼, Stopped 代表工作「暫停」,讓你先做其它事。(有點類似 DOS 時代的 Shell 指令)
1.如果要回去的話按 fg 切換,或是 fg 1 指定回到第一個工作。
2.如果要把這項工作打入背景的話,就是輸入 bg 將前一個工作打入背景或 bg 1 指定第一個工作打入背景。
如果用 bg 在執行 ftp 或 wget 這類抓檔指令時,你就會看到:
[1]+ wget http://www.realvnc.com/dist/vnc-4.0b5-x86_linux.tar.gz -r & <== 重點就是最後這個 & 代表背景執行
而且整個畫面就回到抓擋的地方了,這........根本沒進背景嘛! 甚至有時檔案連抓都沒抓到!
特別要注意的是,如果 ssh 連線中斷,或是按 exit 離開 ssh 的時候,背景執行的所有指令也都會跟著停止。
遇到這種情況就要用 nohup 來做啦!
#nohup wget http://www.realvnc.com/dist/vnc-4.0b5-x86_linux.tar.gz & <==最後要加 & 代表打入背景。
這時感覺會很像當掉沒動作,不過別擔心,直接按 Enter ,提示字元就會出來了。
但是如果忘了加 & 了,會變成怎樣呢?
nohup wget http://www.realvnc.com/dist/vnc-4.0b5-x86_linux.tar.gz
nohup: appending output to `nohup.out'
然後畫面就停住了! 如果還想在這個畫面做其它的事怎麼辦?
不過沒關係,其實程式還是有在執行的,還記得剛剛說的吧!
1.按 Ctrl+Z
[1]+ Stopped nohup wget http://www.realvnc.com/dist/vnc-4.0b5-x86_linux.tar.gz
2.輸入 bg
[1]+ nohup nohup wget http://www.realvnc.com/dist/vnc-4.0b5-x86_linux.tar.gz &
這樣就是跟一開始最後加 & 一樣的效果囉!
而且就算 ssh 連線中斷,還是會繼續抓檔喔!