[Toybox] Fwd: [PATCH] Show thread names with "ps -T" on Android.
Rob Landley
rob at landley.net
Fri Sep 30 14:53:07 PDT 2016
On 09/29/2016 03:11 PM, enh wrote:
> On Thu, Sep 29, 2016 at 12:03 PM, Rob Landley <rob at landley.net> wrote:
>>> (i noticed
>>> as well that the GNU ps docs claim that -123 should work the same as
>>> 123,
>>
>> Um, but the comment on the new code hunk says it's undocumented?
>
> yeah, that could have been clearer too. i meant "not in the help
> output [afaics]". but i did find it in the man page:
>
> PROCESS SELECTION BY LIST
> These options accept a single argument in the form of a blank-separated
> or comma-separated list. They can be used multiple times. For
> example: ps -p "1 2" -p 3,4
>
> -123 Identical to --pid 123.
>
> 123 Identical to --pid 123.
>
> but like i said, -123 doesn't work for me on ubuntu 14.04. (plus it
> seems insane.)
Yeah, skipping the first '-' of each leftover argument's easy enough,
but to _get_ them I have to add "?" to the optstr to allow unknown
arguments through, which means I need to do my own error handling for -B
and similar, and _that_ probably puts it over the threshold into "not
worth doing".
>> Where is this?
>>
>>> but that doesn't seem to be true in practice,
>>
>> landley at driftwood:~/toybox/toy3$ ps -24000
>> PID TTY STAT TIME COMMAND
>> 24000 pts/100 Ss 0:00 bash
>> landley at driftwood:~/toybox/toy3$ ps 24000
>> PID TTY STAT TIME COMMAND
>> 24000 pts/100 Ss 0:00 bash
>>
>> Seems to work?
>
> /me really needs to be more specific... when i said "doesn't work" i
> meant "isn't reasonable":
>
> ~$ ps 1 123
> PID TTY STAT TIME COMMAND
> 1 ? Ss 7:07 /sbin/init
> 123 ? S 0:00 [rcuos/114]
> ~$ ps -1 -123
> PID TTY STAT TIME COMMAND
> 1 ? Ss 7:07 /sbin/init
> ~$
I think this goes into "don't do it and wait for somebody to complain
presenting an actual use case" territory. :)
I checked busybox ps really quick to see that that's doing, and "ps",
"ps ax", "ps 42", and "ps walrus" all gave the exact same output. :)
(Strangely, it accepts/ignores ps -a, but ps -x gives an error and usage
message. Huh.)
I feel pretty good not supporting ps -123 for now. :)
>> $ ps -p 32226,-32589
>> error: process ID out of range
>
> that was the point at which i gave up and said "YAGNI".
>
> see also:
>
> ~$ ps -p 1 -p 123 124
> PID TTY STAT TIME COMMAND
> 1 ? Ss 7:07 /sbin/init
> 123 ? S 0:00 [rcuos/114]
> 124 ? S 0:00 [rcuos/115]
>
> versus
>
> ~$ ps -p 1 -p 123 -124
> PID TTY STAT TIME COMMAND
> 1 ? Ss 7:07 /sbin/init
> 123 ? S 0:00 [rcuos/114]
>
> -PID is utterly broken. i don't think -PID works well enough for
> anyone to be using it.
I need to make another stab at doing a test suite for this, which will
probably involve having a static snapshot of /proc --bind mounted over
it for the duration of the test. (Otherwise kernel threads butterfly
effect the test results no matter how tightly I try to constrain an
emulated test environment.)
> i'm not even sure what "sane" would look like, especially with things
> like abs(MIN_INT)... if we wait until someone actually needs -PID
> we'll have a better idea of what it should actually do.
For kill -pid means process groups. From the man page:
Negative PID values may be used to choose whole
process groups; see the PGID column in ps command output.
A PID of -1 is special; it indicates all processes except the
kill process itself and init.
IF I was going to implement negative pid support here, I'd lean towards
that. But for now, it remains an if.
>> Rob
>>
>> P.S. Can I cc: this back to the list? :)
>
> sure.
>
Done.
Rob
More information about the Toybox
mailing list