From 7672946edb73d485e5eb0ffd75964f2cea2caaa0 Mon Sep 17 00:00:00 2001 From: Guilhem Moulin Date: Tue, 25 Sep 2012 00:55:39 +0200 Subject: A script to start/stop the web panel and ask automatically renew the kerberos ticket. --- bin/fripost-panel | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100755 bin/fripost-panel (limited to 'bin/fripost-panel') diff --git a/bin/fripost-panel b/bin/fripost-panel new file mode 100755 index 0000000..0046a4d --- /dev/null +++ b/bin/fripost-panel @@ -0,0 +1,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 -- cgit v1.2.3