Eitan Adler
2018-Jun-23 18:58 UTC
jail related inconsistencies in FreeBSD tools parameters
On 23 June 2018 at 08:50, James Gritton <jamie at freebsd.org> wrote:> On 2018-06-23 09:45, Eitan Adler wrote: >> >> On 23 June 2018 at 08:30, James Gritton <jamie at freebsd.org> wrote: >>> >>> On 2018-06-22 16:03, Miroslav Lachman wrote: >>>> >>>> >>>> Chris H wrote on 2018/06/22 23:46: >>>>> >>>>> >>>>> On Fri, 22 Jun 2018 23:13:17 +0200 "Miroslav Lachman" >>>>> <000.fbsd at quip.cz> >>>>> said >>>>> >>>>>> I don't know if it is better to discuss it in jail@ or stable@ list so >>>>>> a >>>>>> do cross-post. >>>>>> >>>>>> FreeBSD has many jail aware utilities but they are inconsistent in >>>>>> taking JID as parameter. >>>>>> >>>>>> For example "sockstat" takes -j JID "Show only sockets belonging to >>>>>> the >>>>>> specified jail ID" and it means numeric ID only. >>>>>> On the other hand "ps" takes -J JID "This may be either the jid or >>>>>> name >>>>>> of the jail. Use -J 0 to display only host processes." >>>>>> The same apply for "top", it understands jid as a number or name of >>>>>> the >>>>>> jail too. >>>>>> Then again "cpuset" takes only numerical ID of the jail... >>>>>> >>>>>> Shouldn't it be consistent across all FreeBSD base utilities so all of >>>>>> them can use numerical ID and name? >>>>> >>>>> >>>>> Good idea! Are you offering to create a patch? ;-) >>>>> It'd be my guess that given they weren't all created at the same time, >>>>> nor >>>>> the same individual; that (quite probably?) the "jail" additions were >>>>> also >>>>> added at different times, and by different people. So I'd imagine that >>>>> unless someone with a commit bit decides one day they'd like to take >>>>> that >>>>> on. Someone(tm) maybe you? will need to propose a patch. :-) >>>> >>>> >>>> >>>> If I can understand C sources I will create the patch by myself >>>> instead of just posting here. Unfortunately I am able to code in sh, >>>> php and a bit of javascript and perl but no C. :) >>>> >>>> Miroslav Lachman >>> >>> >>> >>> Sure, a PR would be handy for this - it's a pretty simple thing to add, >>> and >>> consistency would indeed be a good move. >> >> >> Agreed. I'll review and commit such patches. I'd like to see a single >> function for taking a "id or name". Ideally it would live in a >> library, perhaps libjail? > > > It already lives there: jail_getid(3)I was thinking of a more generic one that does id or name. Now that I think about it a bit more, C makes this kind of thing impossible to do usefully. That said, I'll still review and commit any patches to existing tools to make them behave consistently. -- Eitan Adler
James Gritton
2018-Jun-26 18:42 UTC
jail related inconsistencies in FreeBSD tools parameters
On 2018-06-23 12:58, Eitan Adler wrote:> On 23 June 2018 at 08:50, James Gritton <jamie at freebsd.org> wrote: >> On 2018-06-23 09:45, Eitan Adler wrote: >>> >>> On 23 June 2018 at 08:30, James Gritton <jamie at freebsd.org> wrote: >>>> >>>> On 2018-06-22 16:03, Miroslav Lachman wrote: >>>>> >>>>> >>>>> Chris H wrote on 2018/06/22 23:46: >>>>>> >>>>>> >>>>>> On Fri, 22 Jun 2018 23:13:17 +0200 "Miroslav Lachman" >>>>>> <000.fbsd at quip.cz> >>>>>> said >>>>>> >>>>>>> I don't know if it is better to discuss it in jail@ or stable@ >>>>>>> list so >>>>>>> a >>>>>>> do cross-post. >>>>>>> >>>>>>> FreeBSD has many jail aware utilities but they are inconsistent >>>>>>> in >>>>>>> taking JID as parameter. >>>>>>> >>>>>>> For example "sockstat" takes -j JID "Show only sockets belonging >>>>>>> to >>>>>>> the >>>>>>> specified jail ID" and it means numeric ID only. >>>>>>> On the other hand "ps" takes -J JID "This may be either the jid >>>>>>> or >>>>>>> name >>>>>>> of the jail. Use -J 0 to display only host processes." >>>>>>> The same apply for "top", it understands jid as a number or name >>>>>>> of >>>>>>> the >>>>>>> jail too. >>>>>>> Then again "cpuset" takes only numerical ID of the jail... >>>>>>> >>>>>>> Shouldn't it be consistent across all FreeBSD base utilities so >>>>>>> all of >>>>>>> them can use numerical ID and name? >>>>>> >>>>>> >>>>>> Good idea! Are you offering to create a patch? ;-) >>>>>> It'd be my guess that given they weren't all created at the same >>>>>> time, >>>>>> nor >>>>>> the same individual; that (quite probably?) the "jail" additions >>>>>> were >>>>>> also >>>>>> added at different times, and by different people. So I'd imagine >>>>>> that >>>>>> unless someone with a commit bit decides one day they'd like to >>>>>> take >>>>>> that >>>>>> on. Someone(tm) maybe you? will need to propose a patch. :-) >>>>> >>>>> >>>>> >>>>> If I can understand C sources I will create the patch by myself >>>>> instead of just posting here. Unfortunately I am able to code in >>>>> sh, >>>>> php and a bit of javascript and perl but no C. :) >>>>> >>>>> Miroslav Lachman >>>> >>>> >>>> >>>> Sure, a PR would be handy for this - it's a pretty simple thing to >>>> add, >>>> and >>>> consistency would indeed be a good move. >>> >>> >>> Agreed. I'll review and commit such patches. I'd like to see a single >>> function for taking a "id or name". Ideally it would live in a >>> library, perhaps libjail? >> >> >> It already lives there: jail_getid(3) > > I was thinking of a more generic one that does id or name. Now that I > think about it a bit more, C makes this kind of thing impossible to do > usefully. > > That said, I'll still review and commit any patches to existing tools > to make them behave consistently.Yes, jail_getid(3) works with either a numeric ID or a name. I've added a patch to https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=229266 for the four programs I've found that need help. I've tested the easy ones (cpuset and sockstat). - Jamie