0

我在 may deploy.rb 文件中有这个任务:

desc 'open ssh session in background'
  task :ssh_in_background do

    run_locally do 
      execute "ssh -o 'ExitOnForwardFailure yes' -NMS ~/.ssh-tunnel -f #{fetch(:rails_env)}-#{fetch(:application)}"
      execute "exit" 
    end
  end

当我运行这个任务时,它所做的只是挂起。尽管有-f参数,它永远不会退出。

如何让这个任务退出,以便 capistrano 继续?

4

1 回答 1

0

我从 capistrano 的命令切换execute到 ruby​​ 的system命令。

desc 'open ssh session in background'
  task :ssh_in_background do

    run_locally do 
      system "ssh -o 'ExitOnForwardFailure yes' -NMS ~/.ssh-tunnel -f #{fetch(:rails_env)}-#{fetch(:application)}"
    end
  end
于 2014-02-05T22:41:13.197 回答