service; ps & grep help

Anders Karlsson anders at trudheim.co.uk
Mon Aug 25 13:28:52 UTC 2008


* James Pifer <jep at obrien-pifer.com> [20080825 15:03]:
> 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

Try
# ps -ef | grep [s]endmail
instead. Should do what you want (does for me anyway).

> 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
> }

Well, in a shell, $$ is the PID. If you can capture your process PID
when it starts, you simply write it in a file in /var/run/ and when
you stop, you issue a "kill -9 $(</var/run/pidfile)".

> 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. 
>
> Any help is appreciated. 

You can have a look at various init scripts in /etc/init.d/ to get an
idea about how they done it.

/Anders




More information about the fedora-list mailing list