12c7b1c5 (kx 2023-03-24 02:53:04 +0300 1) #!/bin/sh
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 2) #
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 3) # /etc/rc.d/rc.@CSCM_PROGRAM@d - @CSCM_PROGRAM_NAME@ daemon control script.
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 4) #
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 5)
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 6) BIN=@sbindir@/@PROGRAM_DAEMON@
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 7) CONF=@CSCM_CONFIG@
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 8) BCF=@CSCM_HOME_PATH@/@CSCM_PROGRAM@/@CSCM_PROGRAM@.bcf
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 9) PID=@CSCM_PID_DIR@/@CSCM_PROGRAM@d.pid
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 10) LOG=@CSCM_LOG_DIR@/@CSCM_PROGRAM@d.log
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 11)
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 12) INOTIFY=--inotify
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 13)
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 14) cscmd_start() {
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 15) # Sanity checks.
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 16) if [ ! -r $CONF ]; then
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 17) echo "$CONF does not appear to exist. Abort."
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 18) exit 1
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 19) fi
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 20)
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 21) if [ -s $PID ]; then
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 22) echo "@CSCM_PROGRAM_NAME@ daemon appears to already be running?"
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 23) exit 1
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 24) fi
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 25)
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 26) echo "Starting @CSCM_PROGRAM_NAME@ server daemon..."
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 27) if [ -x $BIN ]; then
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 28) $BIN --daemonize $INOTIFY --scm=@CSCM_NAME@ --pid=$PID --log=$LOG --bcf=$BCF --config=$CONF
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 29) fi
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 30) }
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 31)
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 32) cscmd_test_conf() {
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 33) echo "Checking configuration for correct syntax and then"
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 34) echo "trying to open files referenced in configuration..."
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 35) echo ""
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 36) if [ -s $PID ] ; then
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 37) echo "@PROGRAM_DAEMON@: $CONF: Config file is correct."
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 38) else
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 39) $BIN --test --scm=@CSCM_NAME@ --pid=$PID --log=$LOG --bcf=$BCF --config=$CONF
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 40) fi
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 41) }
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 42)
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 43) cscmd_status() {
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 44) if [ -s $PID ] ; then
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 45) echo "@CSCM_PROGRAM_NAME@ daemon is running as PID: $(cat $PID)"
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 46) else
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 47) echo "@CSCM_PROGRAM_NAME@ daemon is stopped."
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 48) fi
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 49) }
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 50)
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 51) cscmd_stop() {
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 52) echo "Shutdown @CSCM_PROGRAM_NAME@ daemon gracefully..."
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 53) if [ -s $PID ] ; then
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 54) kill -TERM $(cat $PID)
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 55) else
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 56) echo "@CSCM_PROGRAM_NAME@ daemon appears to already be stopped."
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 57) fi
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 58) }
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 59)
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 60) cscmd_reload() {
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 61) echo "Reloading @CSCM_PROGRAM_NAME@ daemon configuration..."
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 62) if [ -s $PID ] ; then
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 63) kill -HUP $(cat $PID)
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 64) else
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 65) echo "@CSCM_PROGRAM_NAME@ daemon is not running."
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 66) fi
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 67) }
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 68)
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 69) cscmd_restart() {
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 70) cscmd_stop
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 71) sleep 3
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 72) cscmd_start
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 73) }
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 74)
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 75) case "$1" in
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 76) check)
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 77) cscmd_test_conf
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 78) ;;
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 79) reload)
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 80) cscmd_reload
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 81) ;;
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 82) restart)
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 83) cscmd_restart
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 84) ;;
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 85) start)
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 86) cscmd_start
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 87) ;;
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 88) stop)
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 89) cscmd_stop
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 90) ;;
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 91) status)
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 92) cscmd_status
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 93) ;;
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 94) *)
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 95) echo "usage: `basename $0` {check|reload|restart|start|stop|status}"
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 96) esac