Newer
Older
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
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
#!/bin/bash
#
# dm-mongo-express
#
# Starts the DM Mongo Express daemon
#
# chkconfig: 345 98 98
# description: controls DM Mongo Express daemon
### BEGIN INIT INFO
# Provides: dm-mongo-express
# Required-Start: $local_fs $network
# Required-Stop: $local_fs $network
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Description: Controls DM Mongo Express daemon
### END INIT INFO
# Source function library.
. /etc/rc.d/init.d/functions
# Arguments
ACTION=$1
# Set root to default if needed.
MY_DIR=`dirname $0` && cd $MY_DIR && MY_DIR=`pwd`
if [ -z "${DM_ROOT_DIR}" ]; then
DM_ROOT_DIR=$MY_DIR/../..
fi
# Source environment file.
DM_USER=`id -nu`
DM_HOST=`hostname -s`
DM_ENV_FILE=${DM_ROOT_DIR}/setup.sh
if [ ! -f ${DM_ENV_FILE} ]; then
echo "Environment file ${DM_ENV_FILE} does not exist."
exit 2
fi
. ${DM_ENV_FILE} > /dev/null
mkdir -p ${DM_INSTALL_DIR}/var/run
mkdir -p ${DM_INSTALL_DIR}/var/log
DM_MONGODB_HOST=${DM_MONGODB_HOST:=127.0.0.1}
DM_MONGODB_PORT=${DM_MONGODB_PORT:=27017}
DM_NODE_DIR=${DM_SUPPORT_DIR}/node/${DM_HOST_ARCH}
DM_FOREVER_DIR=${DM_NODE_DIR}/bin/node_modules/forever
DM_MONGO_EXPRESS_DIR=${DM_NODE_DIR}/bin/node_modules/mongo-express
DM_DAEMON_NAME="DM Mongo Express"
DM_DAEMON_CMD=${DM_FOREVER_DIR}/bin/forever
DM_DAEMON_WORK_DIR=${DM_INSTALL_DIR}/var/run/mongo-express
DM_DAEMON_PID_FILE=${DM_INSTALL_DIR}/var/run/mongo-express.pid
DM_DAEMON_LOG_FILE=${DM_INSTALL_DIR}/var/log/mongo-express.log
DM_DAEMON_OUT_FILE=${DM_INSTALL_DIR}/var/log/mongo-express.put
DM_DAEMON_ERR_FILE=${DM_INSTALL_DIR}/var/log/mongo-express.err
DM_DAEMON_START_ARGS="start \
--sourceDIR $DM_MONGO_EXPRESS_DIR \
--workingDir $DM_DAEMON_WORK_DIR \
-p $MONGO_EXPRESS_FOREVER_PATH \
--pidFile $DM_DAEMON_PID_FILE \
-l $DM_DAEMON_LOG_FILE \
-o $DM_DAEMON_OUT_FILE \
-e $DM_DAEMON_ERR_FILE \
--append \
--killSignal=SIGTERM \
$DM_MONGO_EXPRESS_DIR/app.js"
mkdir -p $DM_DAEMON_WORK_DIR
# Determine su command
SU=su
if [ -x /sbin/runuser ]; then
SU=runuser
fi
RETVAL=0
start() {
# Check if service is already running
status -p $DM_DAEMON_PID_FILE > /dev/null 2>&1
if [ $? -eq 0 ]; then
PID=`cat $DM_DAEMON_PID_FILE`
echo $"$DM_DAEMON_NAME daemon is already running (pid: $PID)."
RETVAL=1
return $RETVAL
fi
echo -n $"Starting $DM_DAEMON_NAME daemon: "
# Check if we're a privileged user
if [ `id -u` = 0 -a ${DM_USER} != "root" ]; then
$SU -m -c "${DM_DAEMON_CMD} ${DM_DAEMON_START_ARGS}" ${DM_USER}
else
${DM_DAEMON_CMD} ${DM_DAEMON_START_ARGS}
fi
RETVAL=$?
[ $RETVAL -eq 0 ] && success $"$DM_DAEMON_NAME startup" || failure $"$DM_DAEMON_NAME startup"
echo
return $RETVAL
}
stop() {
# Check if service is already running
status -p $DM_DAEMON_PID_FILE > /dev/null 2>&1
if [ $? -ne 0 ]; then
echo $"$DM_DAEMON_NAME daemon is not running."
RETVAL=1
return $RETVAL
fi
echo -n $"Stopping $DM_DAEMON_NAME daemon: "
PID=`cat $DM_DAEMON_PID_FILE`
$DM_DAEMON_CMD stop $PID
RETVAL=$?
[ $RETVAL -eq 0 ] && rm -f $DM_DAEMON_PID_FILE && success $"$DM_DAEMON_NAME shutdown" || failure $"$DM_DAEMON_NAME shutdown"
echo
return $RETVAL
}
restart() {
stop
sleep 1
start
}
case "$ACTION" in
start)
start
;;
stop)
stop
;;
restart)
restart
;;
status)
status -p $DM_DAEMON_PID_FILE "$DM_DAEMON_NAME" 2> /dev/null
RETVAL=$?
;;
*)
echo $"Usage: $0 {start|stop|status|restart}"
RETVAL=2
esac
exit $RETVAL