使用" ssh + nohup"

时间:2016-09-09 03:28:11

标签: linux shell unix ssh nohup

我想在后台通过ssh在远程服务器上执行特定的脚本 我找到了一些关于nohup的解决方案 但是,nohup没有运行没有" 2>& 1"

我想知道现有" 2>& 1"之间的区别?而不是。
nohup需要" 2>& 1"表达

(请理解我的英语不好)

这是我的' 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

1 个答案:

答案 0 :(得分: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之类的事情。