-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathrhinowiki
More file actions
executable file
·133 lines (103 loc) · 3 KB
/
Copy pathrhinowiki
File metadata and controls
executable file
·133 lines (103 loc) · 3 KB
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
#! /bin/bash
### BEGIN INIT INFO
# Provides: rhinowiki
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Rhinowiki Blog Engine
### END INIT INFO
# Author: Mike Schaeffer <mike@mschaef.com>
. /lib/init/vars.sh
. /lib/lsb/init-functions
PATH=/sbin:/usr/sbin:/bin:/usr/bin
SCRIPTNAME=${0##*/}
SCRIPTNAME=${SCRIPTNAME#[SK]??}
# Rhinowiki Configuration
SERVICE_NAME=${SCRIPTNAME}
SERVICE_DESC="Rhinowiki Blog Engine"
JAVA=/usr/bin/java
PIDFILE=/var/run/${SERVICE_NAME}.pid
RHINOWIKI_USER=${SERVICE_NAME}
RHINOWIKI_JAR=rhinowiki-standalone.jar
RHINOWIKI_CONFIG_FILE=/etc/${SERVICE_NAME}/config.edn
### Read configuration variable file if it is present
[ -r /etc/default/${SERVICE_NAME} ] && . /etc/default/${SERVICE_NAME}
### Start assembling commands
JAVA_OPTS="-Dhttp.port=8089"
JAVA_OPTS="$JAVA_OPTS -Dconf=${RHINOWIKI_CONFIG_FILE}"
JAVA_OPTS="$JAVA_OPTS -jar /usr/share/${SERVICE_NAME}/${RHINOWIKI_JAR}"
RHINOWIKI_SH="$JAVA $JAVA_OPTS >> /var/log/${SERVICE_NAME}/${SERVICE_NAME}-console.log 2>&1"
### Functions
function require_root() {
if [ `id -u` -ne 0 ]; then
echo "You need root privileges to run this script"
exit 1
fi
}
### Operations
do_start()
{
require_root
start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $JAVA --test > /dev/null \
|| return 1 # daemon was already running
start-stop-daemon --start --quiet --pidfile $PIDFILE --background \
--make-pidfile --chuid ${RHINOWIKI_USER} \
--startas /bin/bash -- -c "exec ${RHINOWIKI_SH}" \
|| return 2 # daemon could not be started
}
do_stop()
{
require_root
start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE
RETVAL="$?"
[ "$RETVAL" = 2 ] && return 2 # daemon could not be stopped
rm -f $PIDFILE
return "$RETVAL" # 0 daemon has been stopped, 1 daemon was already stopped
}
### Main command dispatch
case "$1" in
start)
[ "$VERBOSE" != no ] && log_daemon_msg "Starting $SERVICE_DESC" "$SERVICE_NAME"
do_start
case "$?" in
0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
esac
;;
stop)
[ "$VERBOSE" != no ] && log_daemon_msg "Stopping $SERVICE_DESC" "$SERVICE_NAME"
do_stop
case "$?" in
0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
esac
;;
status)
status_of_proc -p $PIDFILE "$JAVA" "$SERVICE_NAME" && exit 0 || exit $?
;;
restart|force-reload)
log_daemon_msg "Restarting $SERVICE_DESC" "$SERVICE_NAME"
do_stop
sleep 5 # Should be synchronous wait for shutdown.
case "$?" in
0|1)
do_start
case "$?" in
0) log_end_msg 0 ;;
1) log_end_msg 1 ;; # Old process is still running
*) log_end_msg 1 ;; # Failed to start
esac
;;
*)
# Failed to stop
log_end_msg 1
;;
esac
;;
*)
echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2
exit 3
;;
esac
: