2011-09-14 9 views
3

私はPlayFrameworkアプリを公開するためにcapistranoを取得しようとしていますが、私はrunコマンドにいくつか問題があります。何が起こるCapistranoとPlayFramework

は、キャップで再生開始コマンドを実行し、それだが、最大発射しているようだが、私は

ps aux | grep java 

を行う際に遊びアプリの実行はありません。

キャップ出力からコマンドをコピーし、サーバー上でローカルに実行すると正しく動作します。

capistrano実行コマンドは、再生するサブプロセスを強制終了しますか?

カピストラノがプロセスを強制終了しないようにするにはどうすればよいですか?

マイdeploy.rb

default_run_options[:pty] = true 
set :application, "Intranet" 
set :domain, "intranet.example.com" 
set :deploy_to, "/srv/#{domain}" 
set :play_path, "/usr/local/play/play" 
set :shared_path, "#{deploy_to}/shared" 
set :app_pid, "#{shared_path}/pids/server.pid" 
set :app_path, "#{deploy_to}/current" 

set :scm, :git 
set :user, "myuser" 
set :repository, "[email protected]:intranet.git" 

ssh_options[:forward_agent] = true 
set :deploy_via, :remote_cache 
set :keep_releases, 3 

role :web, domain 
role :app, domain 
role :db, domain, :primary => true 

namespace :deploy do 
    task :start do 
    run "rm -f #{app_pid};#{play_path} start #{app_path} --deps --pid_file=#{app_pid} --%prod" 
    end 

    task :restart do 
    stop 
    start 
    end 

    task :stop do 
    run "#{play_path} stop #{app_path} --pid_file=#{app_pid}" 
    end 
end 

namespace :play do 
    desc "view running play apps" 
    task :viewprocess do 
    run "#{sudo} ps -ef | grep 'play/framework'" 
    end 

    desc "kill play processes" 
    task :kill do 
    run "#{sudo} ps -ef | grep 'play/framework' | grep -v 'grep' | awk '{print $2}'| xargs -i kill {} ; echo ''" 
    end 

    desc "view logfiles" 
    task :tail_logs, :roles => :app do 
    run "tail -f #{shared_path}/log/system.out" do |channel, stream, data| 
     puts # for an extra line break before the host name 
     puts "#{channel[:host]}: #{data}" 
     break if stream == :err 
    end 
    end 

end 

答えて

3

はちょうど私があなたのスクリプトビットを微調整し、他のものを追加することで、リモート起動のプレイに成功したことを教えてくれます。
問題は、nohup + &でリモートプロセスを起動する必要がありますが、理由がわからないために&がCapistranoで機能しないということです。私は周りの道を見つけた。
私はそれの演劇のモジュールを作ることに決めたので、私はとても意欲的でした。
非常に最初のバージョンはそこにあります:https://github.com/mandubian/play-capistrano

+0

恐ろしいです!最後に私は1行のデプロイメントを得ることができます:) –

+1

うまくいくなら、私はそれも大好きです:) – mandubian

+1

それがなければ、Rubyのいくつかの行を試して試してみるともっと長い時間がかかりました。 – mandubian