[Bug 1758087] [NEW] pgrep -f fails for long command lines
Chris
achrislong+ubuntu at gmail.com
Thu Mar 22 15:35:09 UTC 2018
Public bug reported:
If a command line is really long and the search term is toward the end
of it, pgrep -f fails to find the process. Experimentally, it appears
that the magic number is about 4084.
The script below reproduces the problem. If the command line is short,
pgrep -f reports both a sleep and a bash process. If the line is too
long, pgrep -f only reports the sleep process.
# pgrep -f fails if >= 4063, succeeds if < 4063
stringLength=4063
reallyLongString=$(cat /dev/urandom | tr -cd '[:alnum:]' | head -c $stringLength)
bash -c "echo $reallyLongString > /dev/null ; sleep 999" 2> /dev/null&
pid=$!
sleep 1
echo no -f:
pgrep -l sleep
echo with -f:
pgrep -fl sleep
pkill sleep
** Affects: procps (Ubuntu)
Importance: Undecided
Status: New
--
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to procps in Ubuntu.
https://bugs.launchpad.net/bugs/1758087
Title:
pgrep -f fails for long command lines
Status in procps package in Ubuntu:
New
Bug description:
If a command line is really long and the search term is toward the end
of it, pgrep -f fails to find the process. Experimentally, it appears
that the magic number is about 4084.
The script below reproduces the problem. If the command line is short,
pgrep -f reports both a sleep and a bash process. If the line is too
long, pgrep -f only reports the sleep process.
# pgrep -f fails if >= 4063, succeeds if < 4063
stringLength=4063
reallyLongString=$(cat /dev/urandom | tr -cd '[:alnum:]' | head -c $stringLength)
bash -c "echo $reallyLongString > /dev/null ; sleep 999" 2> /dev/null&
pid=$!
sleep 1
echo no -f:
pgrep -l sleep
echo with -f:
pgrep -fl sleep
pkill sleep
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/procps/+bug/1758087/+subscriptions
More information about the foundations-bugs
mailing list