run_locallly ssh退出的任务

时间:2014-01-28 23:12:03

标签: ssh capistrano local capistrano3

我在deploy 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?

1 个答案:

答案 0 :(得分: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