From a066a6d1bffa47ef1608293a3509674c27d0d19e Mon Sep 17 00:00:00 2001 From: Igor Rzegocki Date: Tue, 28 Nov 2017 14:23:06 +0100 Subject: [PATCH] fix(appserver): Wait up to 10 sec for graceful shutdown Fixes #127 --- templates/default/appserver.service.erb | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/templates/default/appserver.service.erb b/templates/default/appserver.service.erb index 4cc35aa4..9003a04e 100644 --- a/templates/default/appserver.service.erb +++ b/templates/default/appserver.service.erb @@ -46,12 +46,19 @@ def start_<%= @name %> end def stop_<%= @name %> - if <%= @name %>_running? - if run_and_ignore_exitcode_and_print_command "kill -QUIT `cat #{PID_PATH}`" - `rm #{PID_PATH}` - end - else + unless <%= @name %>_running? puts "You can't stop <%= @name %>, because it's not running" + return + end + + retries = 10 + + loop do + break if !<%= @name %>_running? || retries <= 0 + + run_and_ignore_exitcode_and_print_command "kill -QUIT `cat #{PID_PATH}`" + sleep 1 + retries -= 1 end end