Re: [PATCH] proc: Don't allow empty /proc/PID/cmdline for user tasks
From: Alexey Dobriyan
Date: Thu May 17 2018 - 13:54:00 EST
> Kernel threads have empty /proc/PID/cmdline and some userland tools
> including ps(1) and older versions of systemd use this to detect
> kernel threads.
Those tools are broken. Systemd is fixed, see
https://github.com/systemd/systemd/blob/master/src/basic/process-util.c#L442
Empty /proc/*/cmdline is perfectly fine as long as
execve(filename, NULL, NULL)
is fine.
> However, any userland program can emulate the
> behavior by making its argvs unavailable and trick the affected tools
> into thinking that the task is a kernel thread.
Or it can set ->comm to "[kthreadd] and cmdline to "[kthreadd]".