Commit 3f5b7503 authored by Craig Small's avatar Craig Small

pidof: check cmd if space in argv0

A difference in behaviour between the sysvinit and procps pidof
was that the procps one would sometimes not find process that
the sysvinit one did.

The difference is that if a space is found in argv[0] then sysvinit
would look at cmd for a match. This isn't perfect and more of a
best guess but does often work.

procps pidof now follows the same "standard". The most obvious
difference is with kde based processes and incoming ssh connections
with sshd.

References:
 GitLab issue #4
 #4
 https://github.com/limingth/sysvinit/blob/master/sysvinit-2.88dsf/src/killall5.c#L800
parent b42997b6
......@@ -4,6 +4,7 @@ procps-ng-NEXT
* ps: display control group name with -o cgname
* ps: Fallback to attr/current for context Debian #786956
* tests: Conditionally add prctl Debian #816237
* pidof: check cmd if space in argv0. GitLab #4
procps-ng-3.3.11
----------------
......
......@@ -210,6 +210,12 @@ static void select_procs (void)
match = 1;
}
}
/* If there is a space in arg0 then process probably has
* setproctitle so use the cmdline
*/
if (!match && strchr(cmd_arg0, ' ')) {
match = (strcmp(program, task.cmd)==0);
}
safe_free(exe_link);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment