blob: 0046a4ddca1aff99116b2f2c54cc07fd3405712c (
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
|
#!/bin/sh
# Start/stop/restart the web panel
#
# Also, keep renewing/recreating kerberos tickets for the web
# application.
PANEL_DIR=/opt/fripost-panel
SOCKET_DIR=/var/run/fcgi
USER=www-data
PRINCIPAL=AdminWebPanel/fripost.org@FRIPOST.ORG
KEYTAB=/etc/fripost-panel/keytab
CGI=./cgi-bin/index.fcgi
if [ $(id -u) -ne 0 ]; then
echo "Error: You are not root"
exit 1
fi
KSTART="k5start -b -f ${KEYTAB} -S ldap -I $(hostname --fqdn) -u ${PRINCIPAL} -q -K 60"
start () {
test -x "${PANEL_DIR}/cgi-bin/index.fcgi" || exit 0
pgrep -U "${USER}" -G "${USER}" -fx "/usr/bin/perl ${CGI}" >/dev/null && return 0
pgrep -U "${USER}" -G "${USER}" -fx "${KSTART}" >/dev/null || sudo -u "${USER}" ${KSTART} || exit 1
export FCGI_SOCKET_PATH="${SOCKET_DIR}/fripost-panel.socket"
export FCGI_LISTEN_QUEUE=128
start-stop-daemon --start --background \
--chuid "${USER}:${USER}" \
-d "${PANEL_DIR}" \
-m -p "${SOCKET_DIR}/fripost-panel.pid" \
--exec ${CGI}
}
stop () {
pkill -U "${USER}" -G "${USER}" -fx "${KSTART}" || exit 1
start-stop-daemon --stop -u "${USER}" \
--chuid "${USER}:${USER}" \
-p "${SOCKET_DIR}/fripost-panel.pid" \
--retry=TERM/5/KILL/1
}
cd "${PANEL_DIR}" || exit 1
case "${1}" in
start) start ;;
stop) stop ;;
restart) stop && start ;;
*)
echo "Usage: $0 {start|stop|restart}" >&2
exit 1
;;
esac
|