Commit dcb6914f authored by Debabrata Banerjee's avatar Debabrata Banerjee Committed by Craig Small

Support running with child namespaces

By default pgrep/pkill should not kill processes in a namespace it is not
part of. If this is allowed, it allows callers to break namespaces they did
not expect to affect, requiring rewrite of all callers to fix.

So by default, we should work in the current namespace. If --ns 0 is
specified, they we look at all namespaces, and if any other pid is specified
we continue to look in only that namespace.
Signed-off-by: Debabrata Banerjee's avatarDebabrata Banerjee <>
parent 029a4631
......@@ -129,7 +129,7 @@ static int __attribute__ ((__noreturn__)) usage(int opt)
fputs(_(" -F, --pidfile <file> read PIDs from file\n"), fp);
fputs(_(" -L, --logpidfile fail if PID file is not locked\n"), fp);
fputs(_(" --ns <PID> match the processes that belong to the same\n"
" namespace as <pid>\n"), fp);
" namespace as <pid> or 0 for all namespaces\n"), fp);
fputs(_(" --nslist <ns,...> list which namespaces will be considered for\n"
" the --ns option.\n"
" Available namespaces: ipc, mnt, net, pid, user, uts\n"), fp);
......@@ -861,8 +861,6 @@ static void parse_opts (int argc, char **argv)
* break; */
opt_ns_pid = atoi(optarg);
if (opt_ns_pid == 0)
usage ('?');
......@@ -916,6 +914,7 @@ int main (int argc, char **argv)
opt_ns_pid = getpid();
parse_opts (argc, argv);
procs = select_procs (&num);
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