[comp.unix.shell] Grepping for a process

cudcv@warwick.ac.uk (Rob McMahon) (04/26/91)

In article <1991Apr24.214750.24522@athena.mit.edu> jik@athena.mit.edu
(Jonathan I. Kamens) writes: 
>Because the 'c' option to grep isn't universally supported.  On an A/UX (SysV
>based) system:
>
>% ps axc
>usage: ps [ -edalf ] [ -c corefile ] [ -s swapdev ] [ -n namelist ] [ -t tlist ]
>        [ -p plist ] [ -u ulist ] [ -g glist ]

But note that `x' isn't support either, so if you can do

	ps ax | grep whatever | grep -v grep

you can also do

	ps axc | grep whatever

I assume there's a similar option for System V ?

One case has been pointed out to me that fails: if the `whatever' is a shell
script, the `ps c' will report it as `sh'.

Rob
-- 
UUCP:   ...!mcsun!ukc!warwick!cudcv	PHONE:  +44 203 523037
JANET:  cudcv@uk.ac.warwick             INET:   cudcv@warwick.ac.uk
Rob McMahon, Computing Services, Warwick University, Coventry CV4 7AL, England

pd@x.co.uk (Paul Davey) (05/17/91)

In csh

	alias psg 'ps aux | sed -n -e "/sed -n -e /d\\
		/\!$/p\\
		/TIME COMMAND/p"'

(change 'ps aux' to 'ps -ef' for sysV.)

Converting to a ksh or sh function is left as an exercise for the
reader ...

To kill I use this script which I picked this up from the net some
time back.

#!/bin/sh
# slay :  kill processes by names 
#
# Do our best to locate the PIDs to kill from the give
# process names.
#

MYNAME=`basename $0`
Ask=yes
case $1 in
"")
	echo "Usage: $MYNAME process_name ..."
	exit 1 ;;
-n)
	Ask=no; shift ;;
esac

 # change 'ps aux' to 'ps -ef' for sysV.
PSAUX=`ps aux`
for pname
do
	line= PID=
	PID=`echo "$PSAUX" |
		grep -i $pname |
		awk '!/grep|'$MYNAME'/ {print $2}'`

	for pid in $PID
	do
		if [ $Ask = yes ]
		then
			line=`echo "$PSAUX" | awk '$2 == '$pid' {print}'`
			echo -n "Kill ($line)? "
			read reply
			case $reply in
			[Yy]*)	kill -9 $pid
				;;
			esac
		else
			kill -9 $pid
		fi
	done
done
 


--
 Regards,			 pd@x.co.uk          IXI Limited
	Paul Davey		 pd@ixi.uucp         62-74 Burleigh St.
				 ...!uunet!ixi!pd    Cambridge  U.K.
 "These are interesting times"   +44 223 462 131     CB1  1OJ      
				 USA: 1 800 XDESK 57