#!/bin/bash # # Start the X2Go Session Broker PAM Authentication Service # # Copyright © 2012 Mike Gabriel # Distributable under the terms of the GNU AGPL version 2. # ### BEGIN INIT INFO # Provides: x2gobroker-authservice # Required-Start: $network $remote_fs $syslog x2gobroker-daemon # Required-Stop: $network $remote_fs $syslog x2gobroker-daemon # Default-Start: 2 3 5 # Default-Stop: 0 1 6 # Short-Description: X2Go Session Broker PAM Authentication Service # Description: PAM authentication service for X2Go Session Broker ### END INIT INFO . /etc/rc.status # First reset status of this service rc_reset AUTHSERVICE=/usr/sbin/x2gobroker-authservice test -d /run && RUNDIR=/run || RUNDIR=/var/run PIDFILE_AUTHSERVICE=$RUNDIR/x2gobroker/x2gobroker-authservice.pid DEBIANCONFIG_COMMON=/etc/default/python-x2gobroker DEBIANCONFIG_AUTHSERVICE=/etc/default/x2gobroker-authservice test -x "$AUTHSERVICE" || exit 0 START_AUTHSERVICE=false X2GOBROKER_DEBUG=0 X2GOBROKER_DAEMON_USER='x2gobroker' X2GOBROKER_DAEMON_GROUP='x2gobroker' X2GOBROKER_AUTHSERVICE_SOCKET="$RUNDIR/x2gobroker/x2gobroker-authservice.socket" test -f $DEBIANCONFIG_COMMON && . $DEBIANCONFIG_COMMON test -f $DEBIANCONFIG_AUTHSERVICE && . $DEBIANCONFIG_AUTHSERVICE if ! getent passwd $X2GOBROKER_DAEMON_USER 1>/dev/null 2>/dev/null; then X2GOBROKER_DAEMON_USER=nobody fi if ! getent group $X2GOBROKER_DAEMON_GROUP 1>/dev/null 2>/dev/null; then X2GOBROKER_DAEMON_GROUP=nogroup fi # create PID directory mkdir -p $RUNDIR/x2gobroker chown $X2GOBROKER_DAEMON_USER:$X2GOBROKER_DAEMON_GROUP $RUNDIR/x2gobroker chmod 0770 $RUNDIR/x2gobroker export X2GOBROKER_DEBUG export X2GOBROKER_DAEMON_USER export X2GOBROKER_DAEMON_GROUP export X2GOBROKER_AUTHSERVICE_SOCKET case "$1" in start) echo -n "Starting X2go Session authservice standalone daemon ... " echo startproc -u $X2GOBROKER_DAEMON_USER -g $X2GOBROKER_DAEMON_GROUP -p $PIDFILE_AUTHSERVICE $AUTHSERVICE -s $X2GOBROKER_AUTHSERVICE_SOCKET -o $X2GOBROKER_DAEMON_USER -g $X2GOBROKER_DAEMON_GROUP -p 0666 startproc -u $X2GOBROKER_DAEMON_USER -g $X2GOBROKER_DAEMON_GROUP -p $PIDFILE_AUTHSERVICE $AUTHSERVICE -s $X2GOBROKER_AUTHSERVICE_SOCKET -o $X2GOBROKER_DAEMON_USER -g $X2GOBROKER_DAEMON_GROUP -p 0666 pidofproc x2gobroker-authservice > $PIDFILE_AUTHSERVICE rc_status -v ;; stop) echo -n "Stopping X2go Session authservice standalone daemon ... " killproc -TERM -p $PIDFILE_AUTHSERVICE x2gobroker-authservice rm -f $X2GOBROKER_AUTHSERVICE_SOCKET $PIDFILE_AUTHSERVICE # Remember status and be verbose rc_status -v ;; restart) ## Stop the service and regardless of whether it was ## running or not, start it again. $0 stop $0 start # Remember status and be quiet rc_status ;; status) echo -n "Checking for X2go Session authservice ... " ## Check status with checkproc(8), if process is running ## checkproc will return with exit status 0. # Status has a slightly different for the status command: # 0 - service running # 1 - service dead, but /var/run/ pid file exists # 2 - service dead, but /var/lock/ lock file exists # 3 - service not running # NOTE: checkproc returns LSB compliant status values. checkproc -p $PIDFILE_AUTHSERVICE x2gobroker-authservice rc_status -v ;; *) echo "Usage: $0 {start|stop|status|restart}" exit 1 ;; esac rc_exit