-c, --count
Suppress normal output; instead print a count of matching processes. When
count does not match any‐
thing, e.g. returns zero, the command will return non-zero value.
Looks like you would want to use the --count flag instead of piping to wc:
[0:root@elmo CoA3]$ pgrep -f http --count
12
[0:root@elmo CoA3]$ pgrep -f httx --count
0
OR
Check the return code:
EXIT STATUS
0 One or more processes matched the criteria.
1 No processes matched.
2 Syntax error in the command line.
3 Fatal error: out of memory etc.
$last_line = exec('pgrep -f foo 2>&1', $output, $return_code);
print $output;
print $return_code;
Bill
On 8/9/2017 5:03 PM, Patrick O'Callaghan wrote:
On Wed, 2017-08-09 at 14:06 -0400, bruce wrote:
> Hey peeps.
>
> From a fed/centos cmdline...
>
> pgrep -f "foo" | wc -l
>
> will return 0 -- if "foo" doesn't exist in the procTBL, and something
> else if "foo" is running.
>
> The curiousity... When I have a simple php
>
> <?php
>
> $f="pgrep -f 'foo' | wc -l";
> $t=`$f`;
> print $t
>
> ?>
>
> $t isn't 0!! -- it's actually 1, or something else if foo is running..
>
> Any ideas why?? I've used the different methods php provides to "run"
> shell/.cmdline processes. I get the same results.
>
> Now.. I can do something like
> ps aux | grep 'foo' | grep -v 'grep' | wc -l
> and get the correct results within the php as well as the shell.
>
> Didn't find anything via the 'net or SO on this..
>
> Thoughts/comments??
I suggest you run the PHP script with the pipe to 'wc' changed to save
the output somewhere, then look at it.
poc
_______________________________________________
users mailing list -- users(a)lists.fedoraproject.org
To unsubscribe send an email to users-leave(a)lists.fedoraproject.org