diff options
author | Gareth Rees <gareth@mysociety.org> | 2014-08-05 11:10:41 +0100 |
---|---|---|
committer | Gareth Rees <gareth@mysociety.org> | 2014-08-15 16:46:24 +0100 |
commit | db6f6712a042d942d45ee25542b156d996d18a09 (patch) | |
tree | 5937f9adea692a6a62cfdaedb30a0dc9455d683b | |
parent | d700f325de56c8a039cbe4178dd44842ef0ee977 (diff) |
Add passenger sysvinit
Adds a sysvinit script for passenger based apps.
Stops the daemon by adding a tmp/stop.txt file [1],
which requires a httpd directive to return 503 if the
file exists.
[1] http://blog.flowdock.com/2009/03/11/stopping-your-rails-application-with-phusion-passenger/
-rwxr-xr-x | config/sysvinit-passenger.ugly | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/config/sysvinit-passenger.ugly b/config/sysvinit-passenger.ugly new file mode 100755 index 000000000..0940a4d63 --- /dev/null +++ b/config/sysvinit-passenger.ugly @@ -0,0 +1,59 @@ +#! /bin/sh +### BEGIN INIT INFO +# Provides: application-passenger-!!(*= $site *)!! +# Required-Start: $local_fs $network +# Required-Stop: $local_fs $network +# Default-Start: 2 3 4 5 +# Default-Stop: 0 1 6 +# Short-Description: Starts the Passenger app server for the "!!(*= $site *)!!" site +# Description: The Passenger app server for the "!!(*= $site *)!!" site +### END INIT INFO + +# This example sysvinit script is based on the helpful example here: +# http://richard.wallman.org.uk/2010/02/howto-deploy-a-catalyst-application-using-fastcgi-and-nginx/ + +PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin +NAME=!!(*= $site *)!! +SITE_HOME=!!(*= $vhost_dir *)!!/!!(*= $vcspath *)!! +DESC="Alaveteli app server" +USER=!!(*= $user *)!! + +set -e + +start_daemon() { + echo -n "Starting $DESC: " + rm -f "$SITE_HOME/public/down.html" + echo "$NAME." +} + +stop_daemon() { + echo -n "Stopping $DESC: " + cp "$SITE_HOME/public/down.default.html" "$SITE_HOME/public/down.html" + echo "$NAME." +} + +restart_daemon() { + echo -n "Restarting $DESC: " + rm -f "$SITE_HOME/public/down.html" + touch "$SITE_HOME/tmp/restart.txt" + echo "$NAME." +} + +case "$1" in + start) + start_daemon + ;; + stop) + stop_daemon + ;; + reload|restart|force-reload) + restart_daemon + ;; + *) + N=/etc/init.d/$NAME + echo "Usage: $N {start|stop|reload|restart|force-reload}" >&2 + exit 1 + ;; +esac + +exit 0 |