アプリの 1 つで Resque ワーカーを起動する bash スクリプトを Ruby で作成しようとしています。
コンソールで指定されたパラメーターから生成するコマンドは次のようになります...
command = "ssh user@#{@ip} 'cd /path/to/app; bundle exec rake resque:work QUEUE=#{@queue}&'"
`command`
コマンドは正しく補間され、すべてが見栄えがします。ssh コマンドのパスワードを入力するよう求められますが、何も起こりません。ssh 接続を作成し、その接続内でコード行を実行するための構文が正しいと確信しています。ssh user@host 'execute command'
Macsay
ターミナルコマンドのみを実行し、正常に機能するより単純なコマンドを実行しました
command = "ssh user@#{@ip} 'say #{@queue}'"
`command`
バックグラウンドで rake タスクを実行しているのは、その行を ssh 内で 1 回使用したことがあり、プロセスをバックグラウンドで実行した場合にのみワーカーを存続させるためです。
何かご意見は?ありがとう!