about summary refs log tree commit diff
path: root/src/testsuite/getpid.sh
blob: 8e6c63818c511ee82cabfba01508f5879cd87379 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#!/bin/sh
# ngIRCd Test Suite
# $Id: getpid.sh,v 1.2 2002/11/10 14:28:06 alex Exp $

# wurde ein Name uebergeben?
[ $# -ne 1 ] && exit 1

# Flags fuer "ps" ermitteln
if [ `uname` = "FreeBSD" ]; then
  PS_FLAGS="-a"; PS_PIDCOL="1"; HEAD_FLAGS="-n 1"
elif [ `uname` = "A/UX" ]; then
  PS_FLAGS="-ae"; PS_PIDCOL="1"; HEAD_FLAGS="-1"
else
  PS_FLAGS="-f"; PS_PIDCOL="2"; HEAD_FLAGS="-n 1"
  ps $PS_FLAGS > /dev/null 2>&1
  if [ $? -ne 0 ]; then PS_FLAGS="a"; PS_PIDCOL="1"; fi
fi

# PID ermitteln
ps $PS_FLAGS > procs.tmp
pid=$( cat procs.tmp | grep "$1" | awk "{print \$$PS_PIDCOL}" | sort -n | head $HEAD_FLAGS )

# ermittelte PID validieren
[ "$pid" -gt 1 ] > /dev/null 2>&1
[ $? -ne 0 ] && exit 1

echo $pid
exit 0

# -eof-