pidof: support "pidof /path/to/binary" case

function                                             old     new   delta
find_pid_by_name                                     230     227      -3

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
Denys Vlasenko 2019-06-15 18:35:39 +02:00
parent 070aa61747
commit 3a0eea0887

View File

@ -90,7 +90,11 @@ pid_t* FAST_FUNC find_pid_by_name(const char *procName)
/* or we require argv0 to match (essential for matching reexeced /proc/self/exe)*/ /* or we require argv0 to match (essential for matching reexeced /proc/self/exe)*/
|| (p->argv0 && strcmp(bb_basename(p->argv0), procName) == 0) || (p->argv0 && strcmp(bb_basename(p->argv0), procName) == 0)
/* or we require /proc/PID/exe link to match */ /* or we require /proc/PID/exe link to match */
|| (p->exe && strcmp(bb_basename(p->exe), procName) == 0) || (p->exe && strcmp(
procName[0] == '/' ? p->exe /* support "pidof /path/to/binary" case too */
: bb_basename(p->exe),
procName
) == 0)
) { ) {
pidList = xrealloc_vector(pidList, 2, i); pidList = xrealloc_vector(pidList, 2, i);
pidList[i++] = p->pid; pidList[i++] = p->pid;