summaryrefslogtreecommitdiff
path: root/cscmd/rc.cscmd.in
diff options
context:
space:
mode:
Diffstat (limited to 'cscmd/rc.cscmd.in')
-rw-r--r--cscmd/rc.cscmd.in96
1 files changed, 96 insertions, 0 deletions
diff --git a/cscmd/rc.cscmd.in b/cscmd/rc.cscmd.in
new file mode 100644
index 0000000..e3297e1
--- /dev/null
+++ b/cscmd/rc.cscmd.in
@@ -0,0 +1,96 @@
+#!/bin/sh
+#
+# /etc/rc.d/rc.@CSCM_PROGRAM@d - @CSCM_PROGRAM_NAME@ daemon control script.
+#
+
+BIN=@sbindir@/@PROGRAM_DAEMON@
+CONF=@CSCM_CONFIG@
+BCF=@CSCM_HOME_PATH@/@CSCM_PROGRAM@/@CSCM_PROGRAM@.bcf
+PID=@CSCM_PID_DIR@/@CSCM_PROGRAM@d.pid
+LOG=@CSCM_LOG_DIR@/@CSCM_PROGRAM@d.log
+
+INOTIFY=--inotify
+
+cscmd_start() {
+ # Sanity checks.
+ if [ ! -r $CONF ]; then
+ echo "$CONF does not appear to exist. Abort."
+ exit 1
+ fi
+
+ if [ -s $PID ]; then
+ echo "@CSCM_PROGRAM_NAME@ daemon appears to already be running?"
+ exit 1
+ fi
+
+ echo "Starting @CSCM_PROGRAM_NAME@ server daemon..."
+ if [ -x $BIN ]; then
+ $BIN --daemonize $INOTIFY --scm=@CSCM_NAME@ --pid=$PID --log=$LOG --bcf=$BCF --config=$CONF
+ fi
+}
+
+cscmd_test_conf() {
+ echo "Checking configuration for correct syntax and then"
+ echo "trying to open files referenced in configuration..."
+ echo ""
+ if [ -s $PID ] ; then
+ echo "@PROGRAM_DAEMON@: $CONF: Config file is correct."
+ else
+ $BIN --test --scm=@CSCM_NAME@ --pid=$PID --log=$LOG --bcf=$BCF --config=$CONF
+ fi
+}
+
+cscmd_status() {
+ if [ -s $PID ] ; then
+ echo "@CSCM_PROGRAM_NAME@ daemon is running as PID: $(cat $PID)"
+ else
+ echo "@CSCM_PROGRAM_NAME@ daemon is stopped."
+ fi
+}
+
+cscmd_stop() {
+ echo "Shutdown @CSCM_PROGRAM_NAME@ daemon gracefully..."
+ if [ -s $PID ] ; then
+ kill -TERM $(cat $PID)
+ else
+ echo "@CSCM_PROGRAM_NAME@ daemon appears to already be stopped."
+ fi
+}
+
+cscmd_reload() {
+ echo "Reloading @CSCM_PROGRAM_NAME@ daemon configuration..."
+ if [ -s $PID ] ; then
+ kill -HUP $(cat $PID)
+ else
+ echo "@CSCM_PROGRAM_NAME@ daemon is not running."
+ fi
+}
+
+cscmd_restart() {
+ cscmd_stop
+ sleep 3
+ cscmd_start
+}
+
+case "$1" in
+ check)
+ cscmd_test_conf
+ ;;
+ reload)
+ cscmd_reload
+ ;;
+ restart)
+ cscmd_restart
+ ;;
+ start)
+ cscmd_start
+ ;;
+ stop)
+ cscmd_stop
+ ;;
+ status)
+ cscmd_status
+ ;;
+ *)
+ echo "usage: `basename $0` {check|reload|restart|start|stop|status}"
+esac