我正在嘗試在ruby中編寫一個bash腳本,該腳本將爲我的一個應用程序啓動一個Resque worker。使用ruby通過ssh發送腳本
,我從控制檯給出的PARAMS產生的命令看起來像這樣...
command = "ssh [email protected]#{@ip} 'cd /path/to/app; bundle exec rake resque:work QUEUE=#{@queue}&'"
`command`
的命令是否正確插入,一切看起來不錯。我被要求輸入ssh命令的密碼,然後沒有任何反應。我很確定我的語法對於在該連接中進行ssh連接和運行一行代碼是正確的。 ssh [email protected] 'execute command'
我已經做了,只有運行在MAC say
終端命令一個簡單的命令和工作的罰款
command = "ssh [email protected]#{@ip} 'say #{@queue}'"
`command`
我在後臺運行rake任務,因爲我已經使用該行一旦進入SSH如果你在後臺運行這個進程,它只會讓工作人員保持活着。
有什麼想法?謝謝!
這似乎是正確的標誌使用,但我仍然得到相同的結果。它提示輸入密碼登錄,然後我得到我的本地終端提示。 – Luke
@Luke - 如果你做了'ssh -f xxx「... bundle exec ...>/dev/null dev/null&」'?即將'stdout/in'重定向添加到'/ dev/null'。 – Casper
@Luke - 首先用'sleep 30'來測試它,以確保問題不在其他地方。 – Casper