作者zhucc (阿朱哥)
看板Linux
标题[问题] shell script 使用 ssh 下指令回不来
时间Fri Aug 30 18:04:29 2013
不知道标题该怎麽下
我在 A 机器写了一个 shell script 要去 B 机器执行 kill node 然後再执行
A 机器上写的是
ssh 192.168.0.5 "cd /home/node/;./nd.sh $2 &"
B 机器上的 nd.sh
#!/bin/bash
cd /home/node/
/usr/local/bin/node $1/node.js >/dev/null &
但是在 A 机器上执行 shell script 後会卡在这一句,想请教有正确的写法吗?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 114.33.55.125
1F:推 weltschmerz:试试看改成ssh -f 192.168.0.5 cd /home/node/; 08/30 20:43
2F:→ weltschmerz:没有-f我印象中会等到你的command跑完你的画面才会跳 08/30 20:44
3F:→ weltschmerz:回到你原来的位置(不然就要等command执行完) 08/30 20:44
感谢,加了 -f 後真的就不会卡住了
4F:推 yvb:-f 只是把 ssh 跑在 A 的背景. 08/30 21:15
5F:→ yvb:试试看 ./nd.sh $2 >/dev/null 2>&1 &" 看看. 08/30 21:16
刚刚去主机上看,真的是跑在A的背景Orz 然後从晚上卡到现在........
然後你的方法是可以的 非常感谢^^
是说我前面有试过 ./nd.sh $2 >/dev/null &" 但是还是失败
※ 编辑: zhucc 来自: 114.33.6.214 (08/31 02:21)
6F:推 yvb:因为输出有 stdout 和 stderr, 你只把 stdout 丢掉, 08/31 21:18
7F:→ yvb:还是把 stderr 留给 ssh 接收, 所以 ssh 会卡在那. 08/31 21:19
8F:→ zhucc:了解了、感谢楼上^^ 09/01 01:39