#!/bin/sh usage() { cat <&2; exit 1; fi eval set -- "$TEMP" OPT_USER="" OPT_SANE=0 OPT_UNIQ=0 while true; do case "$1" in -u|--user) OPT_USER="$2" ; shift 2 ;; -U|--uniq) OPT_UNIQ=1; shift ;; -s|--sane) OPT_SANE=1; shift ;; -h|--help) usage; exit 0 ;; --) shift; break ;; *) echo "Erreur interne"; exit -1 ;; esac done ID_USER="`getent passwd $OPT_USER | cut -d: -f3`" if [ $# -ne 1 ]; then usage; exit -1; fi NAME="$1" STATUS=0 RES="`ps n -eo pid,user,state,command | egrep "$NAME" | egrep "$ID_USER " | egrep -v "grep|$0"`" P_USER="` echo $RES | cut -d' ' -f2`" P_STATE="` echo $RES | cut -d' ' -f3`" if [ -n "$RES" ]; then if [ -n "$OPT_USER" ]; then if [ "`getent passwd $OPT_USER`" != "`getent passwd $P_USER`" ]; then STATUS=2 fi fi if [ $OPT_SANE -eq 1 -a "$P_STATE" = "Z" ]; then STATUS=2 fi if [ $OPT_UNIQ -eq 1 ]; then if [ `echo -e "$RES" |wc -l` -gt 1 ]; then STATUS=2 fi fi else STATUS=2 fi [ $STATUS -eq 0 ] && echo "$NAME running" exit $STATUS