#!/bin/csh # RLOGOUT v1.7 by Liam Crilly (cs2dw) on 22-Jul-94 # TERMINATES ALL PROCESSES EXECPT THOSE RUNNING ON THE CURRENT SESSION. USEFUL # FOR LOGGING YOURSELF OUT FROM ANOTHER TERMINAL. set sessions=`who | cut -c1-7 | grep -c $LOGNAME` switch ( $sessions ) case "1": echo "You have no remote sessions active." exit breaksw case "2": echo -n "Closing connections on 1 remote session" breaksw default: echo -n "Closing connections on `expr $sessions - 1` remote session(s)" endsw echo -n "." onintr interrupt #set PSCMD="/usr/bin/ps -x" # BSD ps listing #set PSTTY="7,8" # BSD tty no. characters #set PSPID="1-6" # BSD PID no. characters set PSCMD="/usr/bin/ps -fu $LOGNAME" # SVR4 ps listing set PSTTY="34-42" # SVR4 tty no. characters set PSPID="10-14" # SVR4 PID no. characters $PSCMD | grep -v PID > $HOME/rlogout.tmp echo -n "." set tty=`grep "$PSCMD" $HOME/rlogout.tmp | cut -c${PSTTY}` echo -n "." /bin/kill -9 `grep -v $tty $HOME/rlogout.tmp | grep '\-*sh' | cut -c${PSPID} | fmt` echo -n "." echo "done." goto end interrupt: echo "" echo -n "Caught interrupt, quitting..." set killed=`who | cut -c1-7 | grep -c $LOGNAME` @ nokilled=$sessions-$killed echo "" echo "Killed $nokilled` session(s)" end: /bin/rm -f /$HOME/rlogout.tmp