Blame


1 efedfe12 2002-09-20 alex #!/bin/sh
2 efedfe12 2002-09-20 alex # ngIRCd Test Suite
3 6eb3f305 2006-08-05 alex # $Id: getpid.sh,v 1.5 2006/08/05 00:15:28 alex Exp $
4 efedfe12 2002-09-20 alex
5 1ed708ef 2003-08-22 alex # did we get a name?
6 efedfe12 2002-09-20 alex [ $# -ne 1 ] && exit 1
7 efedfe12 2002-09-20 alex
8 1ed708ef 2003-08-22 alex # detect flags for "ps" and "head"
9 6eb3f305 2006-08-05 alex UNAME=`uname`
10 6eb3f305 2006-08-05 alex if [ $UNAME = "FreeBSD" -o $UNAME = "SunOS" ]; then
11 797f9170 2002-11-10 alex PS_FLAGS="-a"; PS_PIDCOL="1"; HEAD_FLAGS="-n 1"
12 6eb3f305 2006-08-05 alex elif [ $UNAME = "A/UX" ]; then
13 797f9170 2002-11-10 alex PS_FLAGS="-ae"; PS_PIDCOL="1"; HEAD_FLAGS="-1"
14 6eb3f305 2006-08-05 alex elif [ $UNAME = "GNU" ]; then
15 1ed708ef 2003-08-22 alex PS_FLAGS="-ax"; PS_PIDCOL="2"; HEAD_FLAGS="-n 1"
16 efedfe12 2002-09-20 alex else
17 797f9170 2002-11-10 alex PS_FLAGS="-f"; PS_PIDCOL="2"; HEAD_FLAGS="-n 1"
18 efedfe12 2002-09-20 alex ps $PS_FLAGS > /dev/null 2>&1
19 797f9170 2002-11-10 alex if [ $? -ne 0 ]; then PS_FLAGS="a"; PS_PIDCOL="1"; fi
20 efedfe12 2002-09-20 alex fi
21 efedfe12 2002-09-20 alex
22 1ed708ef 2003-08-22 alex # debug output
23 6eb3f305 2006-08-05 alex #echo "$0: UNAME=$UNAME"
24 1ed708ef 2003-08-22 alex #echo "$0: PS_FLAGS=$PS_FLAGS"
25 1ed708ef 2003-08-22 alex #echo "$0: PS_PIDCOL=$PS_PIDCOL"
26 1ed708ef 2003-08-22 alex #echo "$0: HEAD_FLAGS=$HEAD_FLAGS"
27 1ed708ef 2003-08-22 alex
28 1ed708ef 2003-08-22 alex # search PID
29 efedfe12 2002-09-20 alex ps $PS_FLAGS > procs.tmp
30 6eb3f305 2006-08-05 alex cat procs.tmp | \
31 6eb3f305 2006-08-05 alex grep -v "$0" | grep "$1" | \
32 6eb3f305 2006-08-05 alex awk "{print \$$PS_PIDCOL}" | \
33 6eb3f305 2006-08-05 alex sort -n > pids.tmp
34 0551f688 2003-04-22 alex pid=`head $HEAD_FLAGS pids.tmp`
35 0551f688 2003-04-22 alex rm -rf procs.tmp pids.tmp
36 efedfe12 2002-09-20 alex
37 1ed708ef 2003-08-22 alex # validate PID
38 efedfe12 2002-09-20 alex [ "$pid" -gt 1 ] > /dev/null 2>&1
39 efedfe12 2002-09-20 alex [ $? -ne 0 ] && exit 1
40 efedfe12 2002-09-20 alex
41 efedfe12 2002-09-20 alex echo $pid
42 efedfe12 2002-09-20 alex exit 0
43 efedfe12 2002-09-20 alex
44 efedfe12 2002-09-20 alex # -eof-