#!/bin/sh # # Start data_xp daemons for HP JetDirect printers. # Or maybe start data_xp daemons for Tektronix X-terms # or for data_wr processes on Alphas, or start the # AXIS print server daemon prosd. USAGE=" $0 {start|stop} [name] to start or stop all data_xp and prosd processes, or only those matching name. " case "$1" in 'start') #for XTERM in r7lw p6lw r5lw fylw djlw solw otlw gllw njlw dclw colw rdlw rzlw mslw stlw brlw lklw; do #for XTERM in r7lw p6lw r5lw djlw solw otlw gllw njlw dclw colw rdlw rzlw mslw stlw brlw lklw; do #for XTERM in r7lw p6lw r5lw djlw solw otlw gllw njlw dclw colw rdlw rzlw mslw stlw lklw pglw; do for XTERM in r7lw p6lw r5lw djlw solw otlw gllw njlw dclw colw rzlw mslw stlw lklw pglw; do if [ -n "$2" ]; then case "$XTERM" in *"$2"* ) ;; * ) echo "Skipping $XTERM"; continue;; esac fi LOG=/var/log/ps$XTERM.log if [ -s $LOG ]; then gzip < $LOG > $LOG.old.gz fi case "$XTERM" in *lw ) PORT=9100;; x* ) PORT=87;; d* ) PORT=88;; ps* ) PORT=prosd;; * ) PORT=87;; esac HOST=$XTERM case "$XTERM" in # So we do not need DNS aliases r7lw ) HOST=ricoh728;; r5lw ) HOST=ricoh533;; lklw ) HOST=kyocera520;; esac if [ "$PORT" = prosd ]; then PROG=/usr/sms/share/axis/prosd ARGS="rome.maths.usyd.edu.au /dev/ps$XTERM $XTERM pr1 netprinter" else PROG=/usr/sms/share/axis/data_xp ARGS="-addr $HOST -port $PORT -pipe /dev/ps$XTERM" fi if /usr/local/sbin/su-start 181 181 /usr/sms/sbin/daemon $PROG $ARGS > $LOG 2>&1; then echo "Done: $PROG $ARGS" else echo "No go: $PROG $ARGS" fi done ;; 'stop') pattern='/usr/sms/share/axis/(data_x[p]|pros[d]) ' msg= if [ -n "$2" ]; then pattern="$pattern.*$2" msg=" to match $2" fi found=none while :; do pid=`ps -A -o pid,command | grep -E "$pattern" | sed -e 's/^ *//' -e 's/ .*//' | head -1` if [ "X$pid" != "X" ]; then ps u --pid $pid echo "Killing process $pid" kill $pid sleep 1 found=some else break fi done if [ "$found" = 'none' ]; then echo "No data_xp or prosd found$msg" exit 1 fi ;; * ) echo "Usage:" echo "$USAGE" exit 1 ;; esac