On 10/6/23 17:10, Colin Cross via Toybox wrote: > I came across an issue when running the pgrep -s 0 test in Android's > CI infrastructure that uses a PID namespace, causing the test to run > session ID 0: > > $ sudo unshare -fp ./toybox pgrep -s 0 > pgrep: bad -s '0' > > The attached patch fixes the argument parsing to support getsid returning 0.
Ah, I read "man 2 getsid" to indicate that sid 0 was special, but it's passing in _pid_ 0 that's special. Which is why, right before your patch, this part renders what you did moot: // For pkill, -s 0 represents pkill's session id. if (pl==&TT.ss && ll[pl->len]==0) ll[pl->len] = getsid(0); Ah, no wait, that _is_ in the pkill man page: -s, --session sid,... Only match processes whose process session ID is listed. Ses‐ sion ID 0 is translated into pgrep's or pkill's own session ID. ...so you want pgrep to accept -s 0, and it'll it will coincidentally work for pkill if your session ID _is_ 0 then getsid() will return 0 anyway? And pkill should work differently from pgrep? Rob _______________________________________________ Toybox mailing list Toybox@lists.landley.net http://lists.landley.net/listinfo.cgi/toybox-landley.net