service; ps & grep help

Bill Davidsen davidsen at tmr.com
Mon Sep 8 00:48:22 UTC 2008


James Pifer wrote:
> I could use a little help with ps and grep. When running a command like:
> 
> # ps -ewf | grep sendmail
> root      2730     1  0 Jul14 ?        00:00:01 sendmail: accepting connections
> smmsp     2739     1  0 Jul14 ?        00:00:00 sendmail: Queue runner at 01:00:00 for /var/spool/clientmqueue
> root      6500  6362  0 07:51 pts/3    00:00:00 grep sendmail
> 
> Is there any way to run this command and get these results, but exclude
> the actual grep itself, which is the last line?
> 
> A little background, I have a java based application that I've used a
> custom start and stop script for. Basically the stop script does:
> stop() {
>         for pid in `ps -efww | grep myapp | grep -v grep | cut -b 10-15`;do
>                 #echo $pid
>                 kill -9 $pid
>         done
>     RETVAL=$?
>     return $RETVAL
> }
> 
> This has worked for years, but for some reason it has stopped working. I
> think it may be because the process is killing itself before it kills
> the app?
> 
> I assume the correct way to do this is store the pid in a file that you
> reference, but I haven't figured out how to do that yet. 

It is the right way to do this, I can't imagine doing it reliably any 
other way.

sleep 10 & echo $! >sleep.pid

Modify to suit your needs. Note: you want to do it the simple way or get 
very tricky, bash thinks ! is shell history and does amusing things when 
you get just a little tricky. For example:
   sleep 10 & echo "Started $!"
doesn't do what you expect.
> 
> Any help is appreciated. 
> 
> Thanks,
> James
> 
> 


-- 
Bill Davidsen <davidsen at tmr.com>
   "We have more to fear from the bungling of the incompetent than from
the machinations of the wicked."  - from Slashdot




More information about the fedora-list mailing list