]> arthur.barton.de Git - ngircd-alex.git/blob - src/testsuite/getpid.sh
Enhanced testsuite, should run under GNU/Hurd now.
[ngircd-alex.git] / src / testsuite / getpid.sh
1 #!/bin/sh
2 # ngIRCd Test Suite
3 # $Id: getpid.sh,v 1.4 2003/08/22 11:31:18 alex Exp $
4
5 # did we get a name?
6 [ $# -ne 1 ] && exit 1
7
8 # detect flags for "ps" and "head"
9 if [ `uname` = "FreeBSD" ]; then
10   PS_FLAGS="-a"; PS_PIDCOL="1"; HEAD_FLAGS="-n 1"
11 elif [ `uname` = "A/UX" ]; then
12   PS_FLAGS="-ae"; PS_PIDCOL="1"; HEAD_FLAGS="-1"
13 elif [ `uname` = "GNU" ]; then
14   PS_FLAGS="-ax"; PS_PIDCOL="2"; HEAD_FLAGS="-n 1"
15 else
16   PS_FLAGS="-f"; PS_PIDCOL="2"; HEAD_FLAGS="-n 1"
17   ps $PS_FLAGS > /dev/null 2>&1
18   if [ $? -ne 0 ]; then PS_FLAGS="a"; PS_PIDCOL="1"; fi
19 fi
20
21 # debug output
22 #echo "$0: PS_FLAGS=$PS_FLAGS"
23 #echo "$0: PS_PIDCOL=$PS_PIDCOL"
24 #echo "$0: HEAD_FLAGS=$HEAD_FLAGS"
25
26 # search PID
27 ps $PS_FLAGS > procs.tmp
28 cat procs.tmp | grep -v "$0" | grep "$1" | awk "{print \$$PS_PIDCOL}" | sort -n > pids.tmp
29 pid=`head $HEAD_FLAGS pids.tmp`
30 rm -rf procs.tmp pids.tmp
31
32 # validate PID
33 [ "$pid" -gt 1 ] > /dev/null 2>&1
34 [ $? -ne 0 ] && exit 1
35
36 echo $pid
37 exit 0
38
39 # -eof-