Treat an exit status of 3 as success for chef-client
authorTom Hughes <tom@compton.nu>
Tue, 11 Apr 2017 08:35:44 +0000 (09:35 +0100)
committerTom Hughes <tom@compton.nu>
Tue, 11 Apr 2017 08:39:46 +0000 (09:39 +0100)
When chef-client is terminated with SIGTERM it unhelpfully
returns an exit status of 3 which, by default, is treated as
an unsuccessful exit.

cookbooks/chef/recipes/default.rb
cookbooks/systemd/resources/service.rb
cookbooks/systemd/templates/default/service.erb

index 9443d05..2e2e345 100644 (file)
@@ -112,6 +112,7 @@ if node[:lsb][:release].to_f >= 15.10
     description "Chef client"
     after "network.target"
     exec_start "/usr/bin/chef-client -i 1800 -s 20"
+    success_exit_status 3
     restart "on-failure"
   end
 else
index 2a8f22b..664304d 100644 (file)
@@ -45,6 +45,7 @@ property :standard_output, String,
          :is => %w(inherit null tty journal syslog kmsg journal+console syslog+console kmsg+console socket)
 property :standard_error, String,
          :is => %w(inherit null tty journal syslog kmsg journal+console syslog+console kmsg+console socket)
+property :success_exit_status, [Integer, String, Array]
 property :restart, String,
          :is => %w(on-success on-failure on-abnormal on-watchdog on-abort always)
 property :private_tmp, [TrueClass, FalseClass]
index ffc0efb..f7f851a 100644 (file)
@@ -75,6 +75,9 @@ ProtectHome=<%= @protect_home %>
 <% if @no_new_privileges -%>
 NoNewPrivileges=<%= @no_new_privileges %>
 <% end -%>
+<% if @success_exit_status -%>
+SuccessExitStatus=<%= Array(@success_exit_status).join(" ") %>
+<% end -%>
 <% if @restart -%>
 Restart=<%= @restart %>
 <% end -%>