summaryrefslogtreecommitdiff
path: root/cscmd/rc.cscmd.in
blob: e3297e1520386b147f597b524a138a304d9ce8b8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
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