* James Pifer <jep(a)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@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