#!/bin/sh # # vtund startup script # # chkconfig: 2345 90 10 # # description: starts vtund with options from %_sysconfdir/sysconfig/vtund # for more details see vtund(8) and vtund.conf(5) # # Peter V. Saveliev 20040111 # Peter V. Saveliev 20040527 - explicit session denotation # Source function library. . /etc/init.d/functions SourceIfNotEmpty /etc/sysconfig/vtund_server NAME="vtund" VTUND="/usr/sbin/vtund" CONFDIR="/etc/sysconfig/vtund" WRAPPER="/usr/lib/vtund/bug4231.sh" PIDFILE="/var/run/vtund.pid" LOCKFILE="/var/lock/subsys/vtund" [ ! -x "$VTUND" ] && exit 1 calculate_sessions() { SESSIONS="server" [ -d "$CONFDIR" ] && { pushd "$CONFDIR" &>/dev/null for i in *; do { [ -f "$i" ] && SESSIONS="$SESSIONS $i" } done } } start() { for i in $1; do { SESSION="$i" case $SESSION in server) # check if there is need in server: [ -z "$SERVER" ] || { case $SERVER in enable|standalone) SOPTIONS="-s" ;; inetd) SOPTIONS="-i" ;; *) ;; esac SOPTIONS="-n $SOPTIONS $OPTIONS" } ;; *) # start client sessions [ -d "$CONFDIR" ] && { k="$CONFDIR/$SESSION" [ -f "$k" ] && { # merge client options . $k SOPTIONS="$OPTIONS" [ -z "$PERSISTENT" ] || SOPTIONS="$SOPTIONS -p" [ -z "$TIMEOUT" ] || SOPTIONS="$SOPTIONS -t $TIMEOUT" SOPTIONS="-n $SOPTIONS $SESSION $SERVER" } } ;; esac echo -ne "Starting $NAME session [ $SESSION ]\t" [ -z "$SOPTIONS" ] || start_daemon --no-announce --name "$NAME" --pidfile "$PIDFILE.$SESSION" --lockfile "$LOCKFILE.$SESSION" --expect-user root -- $WRAPPER -s "$SESSION" -p "$PIDFILE" -d "$VTUND" -- "$SOPTIONS" } done } stop() { for i in $1; do SESSION="$i" echo -ne "Stopping $NAME session [ $SESSION ]...\t" stop_daemon --no-announce --name "$NAME" --pidfile "$PIDFILE.$SESSION" --lockfile "$LOCKFILE.$SESSION" --expect-user root $VTUND done } restart() { stop "$1" start "$1" } if [ -z "$2" ]; then { calculate_sessions } else { SESSIONS="$2" } fi case "$1" in start) start "$SESSIONS" ;; stop) stop "$SESSIONS" ;; restart) restart "$SESSIONS" ;; status) for i in $SESSIONS; do echo -ne "Status $NAME session [ $i ]:\t" status --pidfile "$PIDFILE.$i" --expect-user root $VTUND done ;; condstop) for i in $SESSIONS; do [ -e "$LOCKFILE.$i" ] && stop "$i" done ;; condrestart) for i in $SESSIONS; do [ -e "$LOCKFILE.$i" ] && restart "$i" done ;; *) echo $"Usage: $0 {start|stop|restart|condrestart|condstop|status} [session]" exit 1 esac exit 0