作者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