我正在尝试用 ruby 编写一个 bash 脚本,该脚本将为我的一个应用程序启动一个 Resque 工作程序。
我从控制台中给出的参数生成的命令看起来像这样......
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 中使用过该行一次,如果您在后台运行该进程,它只会让工作人员保持活动状态。
有什么想法吗?谢谢!