3 # $Id: getpid.sh,v 1.5 2006/08/05 00:15:28 alex Exp $
8 # detect flags for "ps" and "head"
10 if [ $UNAME = "FreeBSD" ]; then
11 PS_FLAGS="-a"; PS_PIDCOL="1"; HEAD_FLAGS="-n 1"
12 elif [ $UNAME = "A/UX" ]; then
13 PS_FLAGS="-ae"; PS_PIDCOL="1"; HEAD_FLAGS="-1"
14 elif [ $UNAME = "GNU" ]; then
15 PS_FLAGS="-ax"; PS_PIDCOL="2"; HEAD_FLAGS="-n 1"
16 elif [ $UNAME = "SunOS" ]; then
17 PS_FLAGS="-af"; PS_PIDCOL=2; HEAD_FLAGS="-n 1"
19 PS_FLAGS="-f"; PS_PIDCOL="2"; HEAD_FLAGS="-n 1"
20 ps $PS_FLAGS > /dev/null 2>&1
21 if [ $? -ne 0 ]; then PS_FLAGS="a"; PS_PIDCOL="1"; fi
25 #echo "$0: UNAME=$UNAME"
26 #echo "$0: PS_FLAGS=$PS_FLAGS"
27 #echo "$0: PS_PIDCOL=$PS_PIDCOL"
28 #echo "$0: HEAD_FLAGS=$HEAD_FLAGS"
31 ps $PS_FLAGS > procs.tmp
33 grep -v "$0" | grep "$1" | \
34 awk "{print \$$PS_PIDCOL}" | \
36 pid=`head $HEAD_FLAGS pids.tmp`
37 rm -rf procs.tmp pids.tmp
40 [ "$pid" -gt 1 ] > /dev/null 2>&1
41 [ $? -ne 0 ] && exit 1