#!/bin/sh PORT=1202 # LOCAL_ONLY=false # true | false NO_SANDBOX=false # true | false IDENT=false # true | false ALLOW_ROOT=false # true | false DEBUG=false # true | false EXPIRATION=15 # 0 | | none SBRSHD=/usr/sbin/sbrshd PIDFILE=/var/run/sbrshd.pid if ! [ -x $SBRSHD ]; then exit 0 fi signal_sbrshd() { SIGNAL=$1 if [ -f $PIDFILE ]; then PID=`cat $PIDFILE` if [ x"$PID" != x ] && [ -d /proc/$PID ]; then if ! kill -$SIGNAL $PID; then echo "failed!" return fi if [ $SIGNAL = TERM ]; then for i in 1 2 3 4 5; do if [ ! -d /proc/$PID ]; then rm $PIDFILE echo "done." return fi sleep 1 done echo "process did not die!" else echo "done." fi else echo "process not found!" if [ $SIGNAL = TERM ]; then rm $PIDFILE fi fi else echo "pid file not found!" fi } case "$1" in start) echo -n "Starting sbrshd: " if [ -f $PIDFILE ]; then PID=`cat $PIDFILE` if [ "$PID" ] && [ -d /proc/$PID ]; then echo "already running!" exit 1 else rm $PIDFILE fi fi ARGS="$SBRSHD --port=$PORT --mount-expiration=$EXPIRATION" if $LOCAL_ONLY; then ARGS="$ARGS --local-only" fi if $NO_SANDBOX; then ARGS="$ARGS --no-sandbox" fi if $IDENT; then ARGS="$ARGS --ident" fi if $ALLOW_ROOT; then ARGS="$ARGS --allow-root" fi if $DEBUG; then ARGS="$ARGS --debug=/tmp/sbrshd-$PORT.log" fi PID=`$ARGS` if [ x"$PID" != x ]; then echo "done." echo $PID > $PIDFILE else exit 1 fi ;; stop) echo -n "Stopping sbrshd: " signal_sbrshd TERM ;; restart) $0 stop sleep 1 $0 start ;; enable-debug) echo -n "Opening sbrshd debug log: " signal_sbrshd USR1 ;; disable-debug) echo -n "Closing sbrshd debug log: " signal_sbrshd USR2 ;; *) echo "Usage: $0 {start|stop|restart|enable-debug|disable-debug}" exit 1 ;; esac exit 0