私は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
恐ろしいです!最後に私は1行のデプロイメントを得ることができます:) –
うまくいくなら、私はそれも大好きです:) – mandubian
それがなければ、Rubyのいくつかの行を試して試してみるともっと長い時間がかかりました。 – mandubian