[BACK]Return to getpid.sh CVS log [TXT][DIR] Up to [local] / ircnowd / src / testsuite

Annotation of ircnowd/src/testsuite/getpid.sh, Revision 1.1.1.1

1.1       tomglok     1: #!/bin/sh
                      2: # ngIRCd Test Suite
                      3:
                      4: # did we get a name?
                      5: [ $# -ne 1 ] && exit 1
                      6:
                      7: [ -x /bin/pidof ] && exec /bin/pidof -s $@
                      8:
                      9: # detect flags for "ps" and "head"
                     10: UNAME=`uname`
                     11: if [ $UNAME = "FreeBSD" ]; then
                     12:   PS_FLAGS="-a"; PS_PIDCOL="1"; HEAD_FLAGS="-n 1"
                     13: elif [ $UNAME = "A/UX" ]; then
                     14:   PS_FLAGS="-af"; PS_PIDCOL="2"; HEAD_FLAGS="-1"
                     15: elif [ $UNAME = "GNU" ]; then
                     16:   PS_FLAGS="-ax"; PS_PIDCOL="2"; HEAD_FLAGS="-n 1"
                     17: elif [ $UNAME = "Haiku" ]; then
                     18:   PS_FLAGS="-o Id -o Team"; PS_PIDCOL="1"; HEAD_FLAGS="-1"
                     19: elif [ $UNAME = "Linux" ]; then
                     20:   PS_FLAGS="ax"; PS_PIDCOL="1"; HEAD_FLAGS="-n 1"
                     21: elif [ $UNAME = "SunOS" ]; then
                     22:   PS_FLAGS="-af"; PS_PIDCOL=2; HEAD_FLAGS="-n 1"
                     23: else
                     24:   PS_FLAGS="-af"; PS_PIDCOL="2"; HEAD_FLAGS="-n 1"
                     25:   ps $PS_FLAGS > /dev/null 2>&1
                     26:   if [ $? -ne 0 ]; then PS_FLAGS="a"; PS_PIDCOL="1"; fi
                     27: fi
                     28:
                     29: # debug output
                     30: #echo "$0: UNAME=$UNAME"
                     31: #echo "$0: PS_FLAGS=$PS_FLAGS"
                     32: #echo "$0: PS_PIDCOL=$PS_PIDCOL"
                     33: #echo "$0: HEAD_FLAGS=$HEAD_FLAGS"
                     34:
                     35: # search PID
                     36: ps $PS_FLAGS > procs.tmp
                     37: cat procs.tmp | \
                     38:   grep -v "$0" | grep "$1" | \
                     39:   awk "{print \$$PS_PIDCOL}" | \
                     40:   sort -n > pids.tmp
                     41: pid=`head $HEAD_FLAGS pids.tmp`
                     42: rm -rf procs.tmp pids.tmp
                     43:
                     44: # validate PID
                     45: [ "$pid" -gt 1 ] > /dev/null 2>&1
                     46: [ $? -ne 0 ] && exit 1
                     47:
                     48: echo $pid
                     49: exit 0
                     50:
                     51: # -eof-

CVSweb