I seem to remember that start-stop-daemon might have been part of LSB,
but then again, maybe not? (In the current openSUSE release with
systemd, start-stop-daemon is part of the dpkg package.)
So the following are the init scripts currently running here. They lack
in quality, are dirt hacks, and only do the one thing they were tested
for. There is a lack of quoting all over the place.
#!/bin/bash
#
# Start the X2Go Session Broker PAM Authentication Service
#
# Copyright © 2012 Mike Gabriel <mike.gabr...@das-netzwerkteam.de>
# 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
#!/bin/bash
#
# Start the X2Go Session Broker standalone daemon
#
# Copyright © 2012 Mike Gabriel <mike.gabr...@das-netzwerkteam.de>
# Distributable under the terms of the GNU AGPL version 2.
#
### BEGIN INIT INFO
# Provides: x2gobroker-daemon
# Required-Start: $network $remote_fs $syslog sshd
# Required-Stop: $network $remote_fs $syslog sshd
# Default-Start: 3 5
# Default-Stop: 0 1 6
# Short-Description: X2Go Session Broker standalone daemon
# Description: X2Go Session Broker daemon comes with its own HTTP daemon
### END INIT INFO
. /etc/rc.status
# First reset status of this service
rc_reset
DAEMON=/usr/sbin/x2gobroker
test -d /run && RUNDIR=/run || RUNDIR=/var/run
PIDFILE_BROKER=$RUNDIR/x2gobroker/x2gobroker-daemon.pid
DEBIANCONFIG_COMMON=/etc/default/python-x2gobroker
DEBIANCONFIG_DAEMON=/etc/default/x2gobroker-daemon
test -x "$DAEMON" || exit 0
START_BROKER=false
DAEMON_BIND_ADDRESS=0.0.0.0:8080
X2GOBROKER_DEBUG=0
X2GOBROKER_DAEMON_USER='x2gobroker'
X2GOBROKER_DAEMON_GROUP='x2gobroker'
X2GOBROKER_DEFAULT_BACKEND="zeroconf"
X2GOBROKER_CONFIG="/etc/x2go/x2gobroker.conf"
X2GOBROKER_SESSIONPROFILES="/etc/x2go/broker/x2gobroker-sessionprofiles.conf"
X2GOBROKER_AGENT_CMD="/usr/lib64/x2go/x2gobroker-agent"
X2GOBROKER_SSL_CERTFILE=
X2GOBROKER_SSL_KEYFILE=
test -f $DEBIANCONFIG_COMMON && . $DEBIANCONFIG_COMMON
test -f $DEBIANCONFIG_DAEMON && . $DEBIANCONFIG_DAEMON
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
# mend user ID variables when --chuid $X2GOBROKER_DAEMON_USER is used with
start-stop-daemon
export LOGNAME=$X2GOBROKER_DAEMON_USER
export USER=$X2GOBROKER_DAEMON_USER
export USERNAME=$X2GOBROKER_DAEMON_USER
export X2GOBROKER_DEBUG
export X2GOBROKER_DAEMON_USER
export X2GOBROKER_DAEMON_GROUP
export X2GOBROKER_CONFIG
export X2GOBROKER_DEFAULT_BACKEND
export X2GOBROKER_SESSIONPROFILES
export X2GOBROKER_AGENT_CMD
export X2GOBROKER_SSL_CERTFILE
export X2GOBROKER_SSL_KEYFILE
su_command="su - ${X2GOBROKER_DAEMON_USER} -m -c "
case "$1" in
start)
echo -n "Starting X2go Session broker standalone daemon ... "
export HOME=/var/lib/x2gobroker
startproc -f -u $X2GOBROKER_DAEMON_USER -g $X2GOBROKER_DAEMON_GROUP -p
$PIDFILE_BROKER $DAEMON -b $DAEMON_BIND_ADDRESS -C $X2GOBROKER_CONFIG
pidof x2gobroker > $PIDFILE_BROKER
rc_status -v
;;
stop)
echo -n "Stopping X2go Session broker standalone daemon ... "
killproc -TERM -p $PIDFILE_BROKER x2gobroker
rm -f $PIDFILE_BROKER
# 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 broker ... "
## 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_BROKER x2gobroker
rc_status -v
;;
*)
echo "Usage: $0 {start|stop|status|restart}"
exit 1
;;
esac
rc_exit
_______________________________________________
X2Go-Dev mailing list
X2Go-Dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/x2go-dev