本文主要介紹,如何在Ubuntu遠(yuǎn)程連接服務(wù)器、遠(yuǎn)程啟動進(jìn)程、遠(yuǎn)程啟動后臺進(jìn)程、遠(yuǎn)程啟動后臺圖形化進(jìn)程的常規(guī)方法。
1. 連接遠(yuǎn)程Ubuntu
最常用的遠(yuǎn)程連接方法就是ssh,ssh介紹與使用可以參考SSH原理與運(yùn)用(一):遠(yuǎn)程登錄
用下面的命令可以直接連接遠(yuǎn)程的機(jī)器
ssh user@host
2. 遠(yuǎn)程啟動后臺進(jìn)程
正常情況下,通過ssh連接上遠(yuǎn)程機(jī)器以后,執(zhí)行命令,啟動進(jìn)程都沒有什么問題。但是如果關(guān)閉了ssh窗口,這些啟動的進(jìn)程會自動關(guān)閉。
關(guān)閉ssh窗口-->關(guān)閉session會話-->觸發(fā)SIGHUP信號-->關(guān)閉ssh窗口啟動的所有進(jìn)程
解決方法,可以通過nohup或者screen方式實(shí)現(xiàn)ssh關(guān)閉而進(jìn)程不退出
nohup
nohup 命令運(yùn)行由 Command 參數(shù)和任何相關(guān)的 Arg 參數(shù)指定的命令,忽略所有掛斷(SIGHUP)信號。在注銷后使用 nohup 命令運(yùn)行后臺中的程序。要運(yùn)行后臺中的 nohup 命令,添加 & ( 表示“and”的符號)到命令的尾部。
例如:后臺啟動一個(gè)node進(jìn)程
nohup node &
nohup很容易使用,簡答的命令啟動都沒有什么問題,但是對于復(fù)雜的需要交互的命令就比較麻煩了,例如,關(guān)閉了ssh窗口,但是下次再登錄進(jìn)來的時(shí)候,還是想恢復(fù)上次的進(jìn)程交互方式,通過nohup就不能實(shí)現(xiàn),可以通過screen實(shí)現(xiàn)
screen
例如:同樣上面的方式我們啟動一個(gè)node進(jìn)程
screen node

現(xiàn)在關(guān)閉ssh窗口,另外新啟動一個(gè)ssh窗口,在窗口中輸入
screen -ls查看目前子界面的狀態(tài)
從圖片上可以看到所有的子界面的狀態(tài),現(xiàn)在通過
screen -r 4751進(jìn)入我們剛才關(guān)閉的node進(jìn)程(4751是我們剛才啟動的node進(jìn)程),輸入過上面的命令以后,命令行窗口會回到我們之前關(guān)閉的node進(jìn)程的狀態(tài),如下圖:
3. 啟動圖形化進(jìn)程
對于遠(yuǎn)程啟動的程序,有時(shí)候我們并不關(guān)心程序是否有圖形化界面(比如自動化測試),只要程序能夠運(yùn)行就可以了。xvfb工具提供了這個(gè)功能。
Xvfb 是什么呢,他的名稱是 virtual framebuffer X server for X Version 11, Xvfb 可以直接處理Window 的圖形化功能,并且不會把圖像輸出到屏幕上,也就是說,就算你的電腦沒有啟動 Xwindow , 你仍然可以執(zhí)行任何圖形程式。詳細(xì)可以參考維基百科Xvfb
安裝xvfb
sudo apt-get install xvfb
運(yùn)行xvfb-run 常用命令

例如:
我們通過ssh啟動一個(gè)chromium瀏覽器
提示不能打開,如下圖

下面通過
通過xvfb-run啟動瀏覽器,命令如下
xvfb-run --auto-servernum --server-args="-screen 0 1280x760x24" chromium-browser
瀏覽器啟動成功,如下圖
