diff --git a/manifests/init.pp b/manifests/init.pp index 341b7b9..8a85d7a 100644 --- a/manifests/init.pp +++ b/manifests/init.pp @@ -138,21 +138,17 @@ if $service_file == undef { $service_file_real = $service_provider ? { - redhat => '/etc/init.d/uwsgi', - debian => '/etc/init.d/uwsgi', upstart => '/etc/init/uwsgi.conf', - default => '/etc/init/uwsgi.conf', + default => '/etc/init.d/uwsgi', } } else { $service_file_real = $service_file } if $service_file_mode == undef { - $service_file_mode_real = $service_provider ? { + $service_file_mode_real = $::osfamily ? { redhat => '0555', - debian => '0755', - upstart => '0644', - default => '0644', + default => '0544' } } else { $service_file_mode_real = $service_file_mode @@ -162,7 +158,6 @@ $service_template_real = $service_provider ? { redhat => 'uwsgi/uwsgi_service-redhat.erb', debian => 'uwsgi/uwsgi_service-debian.erb', - upstart => 'uwsgi/uwsgi_upstart.conf.erb', default => 'uwsgi/uwsgi_upstart.conf.erb', } } else { @@ -179,20 +174,12 @@ require => Package[$package_name] } - file { $app_directory: - ensure => 'directory', - owner => 'root', - group => 'root', - mode => '0644', - require => Package[$package_name] - } - service { $service_name: ensure => $service_ensure, enable => $service_enable, + provider => $service_provider, hasrestart => true, hasstatus => true, - provider => $service_provider, require => [ Package[$package_name], File[$config_file], diff --git a/manifests/params.pp b/manifests/params.pp index 183f116..89437a7 100644 --- a/manifests/params.pp +++ b/manifests/params.pp @@ -12,33 +12,24 @@ $service_name = 'uwsgi' $service_ensure = true $service_enable = true - $service_provider = 'upstart' $manage_service_file = true + $service_provider = 'upstart' $config_file = '/etc/uwsgi.ini' $install_pip = true $install_python_dev = true $log_file = '/var/log/uwsgi/uwsgi-emperor.log' $python_pip = 'python-pip' + $pidfile = '/var/run/uwsgi/uwsgi.pid' + $socket = '/var/run/uwsgi/uwsgi.socket' case $::osfamily { redhat: { $app_directory = '/etc/uwsgi.d' - $pidfile = '/var/run/uwsgi/uwsgi.pid' $python_dev = 'python-devel' - $socket = '/var/run/uwsgi/uwsgi.socket' - } - Debian: { - $app_directory = '/etc/uwsgi/apps-enabled' - $pidfile = '/var/run/uwsgi/uwsgi.pid' - $emperor_pidfile = '/var/run/uwsgi/emperor.pid' - $python_dev = 'python-dev' - $socket = '/var/run/uwsgi/uwsgi.socket' } default: { $app_directory = '/etc/uwsgi/apps-enabled' - $pidfile = '/run/uwsgi/uwsgi.pid' $python_dev = 'python-dev' - $socket = '/run/uwsgi/uwsgi.socket' } } } diff --git a/templates/uwsgi.ini.erb b/templates/uwsgi.ini.erb index aa4753e..c9b0491 100644 --- a/templates/uwsgi.ini.erb +++ b/templates/uwsgi.ini.erb @@ -7,13 +7,15 @@ socket = <%= @socket %> pidfile = <%= @pidfile %> emperor = <%= @app_directory %> -emperor-pidfile = <%= @emperor_pidfile %> emperor-tyrant = true -die-on-term = true +master = true +no-orphans = true autoload = true log-date = true logto = <%= @log_file %> +<% if @service_provider != "upstart" %> daemonize = <%= @log_file %> +<% end %> <% if @emperor_options @emperor_options.sort.each do |key, value| diff --git a/templates/uwsgi_service-debian.erb b/templates/uwsgi_service-debian.erb index 0013b0c..01ac1d4 100644 --- a/templates/uwsgi_service-debian.erb +++ b/templates/uwsgi_service-debian.erb @@ -40,7 +40,6 @@ SCRIPTNAME="/etc/init.d/${NAME}" UWSGI_CONFDIR="<%= @app_directory %>" PIDFILE="<%= @pidfile %>" -EMPEROR_PIDFILE="<%= @emperor_pidfile %>" UWSGI_RUNDIR="${PIDFILE%/*}" UWSGI_LOGDIR="<%= @log_file %>%/*" @@ -121,7 +120,7 @@ do_reload() { start-stop-daemon --stop --quiet \ --signal=HUP \ - --pidfile "$EMPEROR_PIDFILE" \ + --pidfile "$PIDFILE" \ --name "$NAME" RETVAL="$?" diff --git a/templates/uwsgi_service-redhat.erb b/templates/uwsgi_service-redhat.erb index 2e521d2..76e5579 100644 --- a/templates/uwsgi_service-redhat.erb +++ b/templates/uwsgi_service-redhat.erb @@ -27,6 +27,7 @@ OPTIONS="--ini <%= @config_file %>" UWSGILOGDIR="${UWSGILOG%/*}" UWSGIPIDDIR="${UWSGIPID%/*}" UWSGISOCKETDIR="${UWSGISOCKET%/*}" +UWSGICONFDIR="<%= @app_directory %>" [ -f /etc/sysconfig/uwsgi ] && . /etc/sysconfig/uwsgi @@ -45,6 +46,11 @@ if [ ! -d "${UWSGISOCKETDIR}" ]; then [ -n "${RUNAS}" ] && chown "${RUNAS}:" "${UWSGISOCKETDIR}" fi +if [ ! -d "${UWSGICONFDIR}" ]; then + mkdir -p "${UWSGICONFDIR}" + [ -n "${RUNAS}" ] && chown "${RUNAS}:" "${UWSGICONFDIR}" +fi + RETVAL=0 prog=uwsgi lockfile=/var/lock/subsys/$prog diff --git a/templates/uwsgi_upstart.conf.erb b/templates/uwsgi_upstart.conf.erb index 8f7a6c9..c25e40f 100644 --- a/templates/uwsgi_upstart.conf.erb +++ b/templates/uwsgi_upstart.conf.erb @@ -5,7 +5,7 @@ # description "uWSGI Emperor" start on runlevel [2345] -stop on runlevel [!2345] +stop on runlevel [06] respawn @@ -13,11 +13,13 @@ pre-start script uwsgilog="<%= @log_file %>" uwsgipid="<%= @pidfile %>" uwsgisocket="<%= @socket %>" + uwsgiappdir="<%= @app_directory %>" uwsgilogdir="${uwsgilog%/*}" uwsgipiddir="${uwsgipid%/*}" uwsgisocketdir="${uwsgisocket%/*}" mkdir -p "$uwsgipiddir" mkdir -p "$uwsgisocketdir" mkdir -p "$uwsgilogdir" + mkdir -p "$uwsgiappdir" end script exec uwsgi --ini <%= @config_file %>