0

Я изучаю, как развернуть с Capistrano, и я узнал, как запустить пользовательскую задачу после развертывания. В этом случае я создал chat задачи и я бег, когда Deploy закончен:Терминал продолжает прослушивать пользовательскую задачу после развертывания Capistrano. Как мы снимаем без убийства?

namespace :deploy do 

    desc 'Restart application' 
    task :restart do 
     on roles(:app) do 
      execute 'sudo nginx -s reload' 
     end 
    end 

    task :chat do 
     on roles(:app) do 
      execute 'sudo kill $(sudo lsof -t -i:4543) ; cd /home/linux/myapp/current ; RAILS_ENV=production rackup private_pub.ru -o 0.0.0.0 -s thin -p 4543 -E production' 
     end 
    end 

    after :publishing, :restart 
    after "deploy", "deploy:chat" 

end 

Это запускает сервер на порту 4543 и все работает хорошо. За исключением того факта, что это окно не застревает в этом процессе, и если я уйду, я убью его.

enter image description here

Что я могу сделать, чтобы отделить экземпляр консоли, что запускать эту задачу в процессе на сервере ?!

ответ

0

Ситуация в том, что у меня есть машина в Amazon EC2, и я делаю ssh-соединения для ее управления.

Я отказался от попытки использовать Капистрано для этого.

Ну, решение, которое я нашел, чтобы отсоединить программу, а затем вернуться к основному терминалу, было инструментом tmux. Я должен был установить его, а затем запустить команду tmux на терминале, запустить мою команду, когда tmux открыт, а затем CTRL+B для выхода из слоя tmux. Задача продолжает работать.