grep'ping the ps output....
Giorgos Keramidas
keramida at ceid.upatras.gr
Mon Dec 12 09:12:05 PST 2005
On 2005-12-12 10:04, Eric Schuele <e.schuele at computer.org> wrote:
> Hello,
>
> I am sure this is quite trivial, but...
>
> I have need to determine if an app (firefox, or anything really) is
> already running before I perform some action. So I grep the ps output.
> However sometimes (many times) that which I'm searching for is present
> in the output because I am presently grep'ing for it. But it is not
> always there. It seems to be a bit inconsistent. (See below).
>
> I was wondering if someone could explain why it is sometimes there and
> not other times. And how I should correctly go about detecting if the
> process is running before I perform my action.
pgrep(1) is nice for this sort of thing :)
> %ps | grep firefox^M^M
> 703 v0 I 0:00.00 /bin/sh /usr/X11R6/bin/firefox^M
> 722 v0 I 0:00.00 /bin/sh /usr/X11R6/lib/firefox/run-mozilla.sh
> /usr/X1^
> M
> 734 v0 S 0:10.92 /usr/X11R6/lib/firefox/firefox-bin^M
> %ps | grep firefox^M^M
> 703 v0 I 0:00.00 /bin/sh /usr/X11R6/bin/firefox^M
> 722 v0 I 0:00.00 /bin/sh /usr/X11R6/lib/firefox/run-mozilla.sh
> /usr/X1^
A similar thing with pgrep(1) works as expected:
% flame:/home/keramida$ for count in 1 2 3 4 5 ; do
% > pgrep firefox ; echo ; sleep 1 ; done
% 1470
%
% 1470
%
% 1470
%
% 1470
%
% 1470
%
% flame:/home/keramida$ for count in 1 2 3 4 5 ; do
% > pgrep -l firefox ; echo ; sleep 1 ; done
% 1470 firefox-bin
%
% 1470 firefox-bin
%
% 1470 firefox-bin
%
% 1470 firefox-bin
%
% 1470 firefox-bin
%
% flame:/home/keramida$
More information about the freebsd-questions
mailing list