# nginx

description "nginx http daemon"

start on (local-filesystems and net-device-up IFACE=lo and runlevel [<%= node['nginx']['upstart']['runlevels'] %>])
stop on runlevel [!<%= node['nginx']['upstart']['runlevels'] %>]

env DAEMON=<%= node['nginx']['binary'] %>
env PID=<%= node['nginx']['pid'] %>
env CONFIG=<%= node['nginx']['source']['conf_path'] %>

respawn
<% if node['nginx']['upstart']['respawn_limit'] %>
respawn limit <%= node['nginx']['upstart']['respawn_limit'] %>
<% end %>

pre-start script
  ${DAEMON} -t
  if [ $? -ne 0 ]; then
    exit $?
  fi
end script

<% unless node['nginx']['upstart']['foreground'] %>
expect fork
<% else %>
console output
<% end %>

exec ${DAEMON} -c "${CONFIG}"

<% if node.recipe?('nginx::passenger') and not node['nginx']['upstart']['foreground'] %>
# classic example of why pidfiles should have gone away
# with the advent of fork().  we missed that bus a long
# time ago so hack around it.
post-stop script
  start-stop-daemon --stop --pidfile ${PID} --name nginx --exec ${DAEMON} --signal QUIT
end script
<% end %>
