我想在后台通过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
答案 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
之类的事情。