ソースを参照

Example Debian init.d script for crunchd

Ask Solem 16 年 前
コミット
ae3eeed81c
1 ファイル変更142 行追加0 行削除
  1. 142 0
      contrib/debian/init.d/crunchd

+ 142 - 0
contrib/debian/init.d/crunchd

@@ -0,0 +1,142 @@
+#! /bin/sh
+
+### BEGIN INIT INFO
+# Provides:		crunchd
+# Required-Start:	
+# Required-Stop:	
+# Default-Start:	2 3 4 5
+# Default-Stop:		1
+# Short-Description:	crunchy task worker daemon
+### END INIT INFO
+
+set -e
+
+VIRTUALENV=/opt/Opal/current
+DJANGO_PROJECT_DIR=/opt/Opal/release/opal
+DJANGO_SETTINGS_MODULE=settings
+CRUNCHD_PID_FILE="/var/run/crunchd.pid"
+CRUNCHD_LOG_FILE="/var/log/crunchd.log"
+CRUNCHD_LOG_LEVEL="INFO"
+CRUNCHD="crunchd"
+
+export DJANGO_SETTINGS_MODULE
+
+# /etc/init.d/ssh: start and stop the crunchy task worker daemon.
+
+test -x "$CRUNCHD" || exit 0
+
+if test -f /etc/default/crunchd; then
+    . /etc/default/crunchd
+fi
+
+
+. /lib/lsb/init-functions
+
+chdir $DJANGO_PROJECT_DIR
+
+CRUNCHD_OPTS="-f $CRUNCHD_LOG_FILE -l $CRUNCHD_LOG_LEVEL -p \
+                    $CRUNCHD_PID_FILE -d"
+
+if [ -n "$2" ]; then
+    CRUNCHD_OPTS="$CRUNCHD_OPTS $2"
+fi
+
+# Are we running from init?
+run_by_init() {
+    ([ "$previous" ] && [ "$runlevel" ]) || [ "$runlevel" = S ]
+}
+
+
+check_dev_null() {
+    if [ ! -c /dev/null ]; then
+	if [ "$1" = log_end_msg ]; then
+	    log_end_msg 1 || true
+	fi
+	if ! run_by_init; then
+	    log_action_msg "/dev/null is not a character device!"
+	fi
+	exit 1
+    fi
+}
+
+
+export PATH="${PATH:+$PATH:}/usr/sbin:/sbin"
+if [ ! -n "$VIRTUALENV" ]; then
+    . "$VIRTUALENV/current/bin/activate"
+    export PATH="$VIRTUALENV/current/bin:$PATH"
+fi
+
+
+case "$1" in
+  start)
+	check_dev_null
+	log_daemon_msg "Starting crunchy task worker server" "crunchd"
+	if start-stop-daemon --start --quiet --oknodo --pidfile $CRUNCHD_PID_FILE --exec $CRUNCHD -- $CRUNCHD_OPTS; then
+	    log_end_msg 0
+	else
+	    log_end_msg 1
+	fi
+	;;
+  stop)
+	log_daemon_msg "Stopping crunchy task worker server" "crunchd"
+	if start-stop-daemon --stop --quiet --oknodo --pidfile $CRUNCHD_PID_FILE; then log_end_msg 0
+	else
+	    log_end_msg 1
+	fi
+	;;
+
+  reload|force-reload)
+    echo "Use start+stop"
+	;;
+
+  restart)
+	log_daemon_msg "Restarting crunchgy task worker server" "crunchd"
+	start-stop-daemon --stop --quiet --oknodo --retry 30 --pidfile $CRUNCHD_PID_FILE
+	check_for_no_start log_end_msg
+	check_dev_null log_end_msg
+	if start-stop-daemon --start --quiet --oknodo --pidfile $CRUNCHD_PID_FILE --exec $CRUNCHD -- $CRUNCHD_OPTS; then
+	    log_end_msg 0
+	else
+	    log_end_msg 1
+	fi
+	;;
+
+  try-restart)
+	log_daemon_msg "Restarting crunchy task worker server" "crunchd"
+	set +e
+	start-stop-daemon --stop --quiet --retry 30 --pidfile $CRUNCHD_PID_FILE
+	RET="$?"
+	set -e
+	case $RET in
+	    0)
+		# old daemon stopped
+		check_dev_null log_end_msg
+		if start-stop-daemon --start --quiet --oknodo --pidfile $CRUNCHD_PID_FILE --exec $CRUNCHD -- $CRUNCHD_OPTS; then
+		    log_end_msg 0
+		else
+		    log_end_msg 1
+		fi
+		;;
+	    1)
+		# daemon not running
+		log_progress_msg "(not running)"
+		log_end_msg 0
+		;;
+	    *)
+		# failed to stop
+		log_progress_msg "(failed to stop)"
+		log_end_msg 1
+		;;
+	esac
+	;;
+
+  status)
+	status_of_proc -p $CRUNCHD_PID_FILE $CRUNCHD crunchd && exit 0 || exit $?
+	;;
+
+  *)
+	log_action_msg "Usage: /etc/init.d/crunchd {start|stop|force-reload|restart|try-restart|status}"
+	exit 1
+esac
+
+exit 0