Vendor the external cookbooks
Knife-Zero doesn't include Berkshelf support, so vendoring everything in the repo is convenient again
This commit is contained in:
49
cookbooks/poise-service/templates/default/upstart.conf.erb
Normal file
49
cookbooks/poise-service/templates/default/upstart.conf.erb
Normal file
@@ -0,0 +1,49 @@
|
||||
# <%= @name %> generated by poise-service for <%= @new_resource.to_s %>
|
||||
|
||||
description "<%= @name %>"
|
||||
|
||||
start on runlevel [2345]
|
||||
stop on runlevel [!2345]
|
||||
|
||||
respawn
|
||||
respawn limit 10 5
|
||||
umask 022
|
||||
chdir <%= @directory %>
|
||||
<%- @environment.each do |key, val| -%>
|
||||
env <%= key %>="<%= val %>"
|
||||
<%- end -%>
|
||||
<%- if @upstart_features[:setuid] -%>
|
||||
setuid <%= @user %>
|
||||
<%- end -%>
|
||||
<%- if @upstart_features[:kill_signal] -%>
|
||||
kill signal <%= @stop_signal %>
|
||||
<%- end -%>
|
||||
<%- if @upstart_features[:reload_signal] -%>
|
||||
reload signal <%= @reload_signal %>
|
||||
<%- end -%>
|
||||
|
||||
<%- if @upstart_features[:setuid] -%>
|
||||
exec <%= @command %>
|
||||
<%- else -%>
|
||||
script
|
||||
exec /opt/chef/embedded/bin/ruby <<EOH
|
||||
require 'etc'
|
||||
ent = Etc.getpwnam(<%= @user.inspect %>)
|
||||
if Process.euid != ent.uid || Process.egid != ent.gid
|
||||
Process.initgroups(ent.name, ent.gid)
|
||||
Process::GID.change_privilege(ent.gid) if Process.egid != ent.gid
|
||||
Process::UID.change_privilege(ent.uid) if Process.euid != ent.uid
|
||||
end
|
||||
ENV["HOME"] = Dir.home(<%= @user.inspect %>) rescue nil
|
||||
exec(*<%= Shellwords.split(@command).inspect %>)
|
||||
EOH
|
||||
end script
|
||||
<%- end -%>
|
||||
<%- if !@upstart_features[:kill_signal] && @stop_signal != 'TERM' -%>
|
||||
pre-stop script
|
||||
PID=`initctl status <%= @name %> | sed 's/^.*process \([0-9]*\)$/\1/'`
|
||||
if [ -n "$PID" ]; then
|
||||
kill -<%= @stop_signal %> "$PID"
|
||||
fi
|
||||
end script
|
||||
<%- end -%>
|
||||
Reference in New Issue
Block a user