2016-09-09 81 views
0

我想通過ssh在後臺執行遠程服務器上的特定腳本。
我發現了一些關於nohup的解決方案。
但是,nohup的也不是沒有「2> & 1」我的腳本有「ssh + nohup」有什麼問題

運行我想知道什麼是現有的「2> & 1」,而不是之間的區別。
nohup needs「2> & 1」expression?

(請理解我的英語不好)

這是我的 'iperf_server.sh' 腳本。

iperf -s -p 1 -w 128K 

而且,這是我的主機命令。

$ ssh [id]@[host] "nohup echo [password] | sudo -S [Home_dir]/iperf_server.sh > /dev/null &" 

$ ssh [id]@[host] "nohup echo [password] | sudo -S [Home_dir]/iperf_server.sh > /dev/null 2>&1 &" 

$ ssh -t [id]@[host] "nohup echo [password] | sudo -S [Home_dir]/iperf_server.sh > /dev/null &" 
Connection to iperf-server closed. 

$ ssh -t [id]@[host] "nohup echo [password] | sudo -S [Home_DIR]/iperf_server.sh > /dev/null 2>&1 &" 
Connection to iperf-server closed. 

這是在服務器的iperf ps命令結果

# ps -eLf | grep iperf | grep -v grep 

# ps -eLf | grep iperf | grep -v grep 
    00:00:00 sudo -S [HOME_DIR]/iperf_server.sh 
    00:00:00 sh [HOME_DIR]/iperf_server.sh 
    00:00:00 iperf -s -p 1 -w 128K 
    00:00:00 iperf -s -p 1 -w 128K 
    00:00:00 iperf -s -p 1 -w 128K 
# killall iperf 

# ps -eLf | grep iperf | grep -v grep 

# ps -eLf | grep iperf | grep -v grep 
+0

可能的重複[在shell中,「2>&1」是什麼意思?](http://stackoverflow.com/questions/818255/in-the-shell-what-does-21-mean) – Kenster

回答

1

採取&關閉的端部。

這應做到:

ssh -t [id]@[host] "nohup echo [password] | sudo -S [Home_dir]/iperf_server.sh > /dev/null 2>&1" 

通過,這是一個巨大的安全風險的方式。不要在命令行輸入密碼echo!如果你真的想使用這樣的密碼,至少應該像cat pwd.txt | sudo -S那樣做。