desc 'PM2 integration' namespace :pm2 do
desc 'Restart server' task :restart do on roles(:web) do within current_path do execute :pm2, 'restart', fetch(:pm2_config) end end end desc 'Reload server' task :reload do on roles(:web) do within current_path do execute :pm2, 'reload', fetch(:pm2_config) end end end desc 'Stop server' task :stop do on roles(:web) do within current_path do execute :pm2, 'stop', fetch(:pm2_config) end end end desc 'Delete server' task :delete do on roles(:web) do within current_path do execute :pm2, 'delete', fetch(:pm2_config) end end end desc 'Start server' task :start do on roles(:web) do within current_path do execute :pm2, 'start', fetch(:pm2_config) end end end desc 'Kill PM2' task :kill do on roles(:web) do execute :pm2, 'kill' end end desc 'List of processes' task :list do on roles(:web) do info "Processes list: \n #{ capture :pm2, 'list' }" end end desc 'Startup script' task :startup do on roles(:web) do execute :pm2, 'startup' end end desc 'Save the processes list' task :save do on roles(:web) do execute :pm2, 'save' end end desc 'Dump processes' task :dump do on roles(:web) do execute :pm2, 'dump' end end desc 'Resurrect processes' task :resurrect do on roles(:web) do execute :pm2, 'resurrect' end end desc 'Flush logs' task :flush do on roles(:web) do execute :pm2, 'flush' end end desc 'Reload logs' task :reload_logs do on roles(:web) do execute :pm2, 'reloadLogs' end end desc 'Ping server' task :ping do on roles(:web) do execute :pm2, 'ping' end end desc 'Update in memory pm2' task :update_pm2 do on roles(:web) do execute :pm2, 'updatePM2' end end desc 'Describe process by id or name' task :describe, :id do |_task, args| on roles(:web) do info(capture :pm2, 'describe', args[:id]) end end desc 'Delete process by id or name' task :delete, :id do |_task, args| on roles(:web) do execute :pm2, 'delete', args[:id] end end after 'deploy:published', :restart
end
namespace :load do
task :defaults do set :pm2_config, 'config/pm2.json' end
end