Aw: Re: Questions about the output of jls
James Gritton
jamie at gritton.org
Mon Dec 14 22:48:39 UTC 2020
On 2020-12-14 12:58, mj-mailinglist at gmx.de wrote:
>>> On Sun, Dec 13, 2020 at 10:04 AM <mj-mailinglist at gmx.de> wrote:
>>>>
>>>> Hi,
>>>>
>>>> I habe a current system, where i have current and 12.2-STABLE jails.
>>>> Checking with jls, i get this output:
>>>>
>>>> root at fbsd13:~ # jls -h jid name ip4.addr host.hostname vnet
>>>> osrelease
>>>> path | column -t
>>>> jid name ip4.addr host.hostname vnet osrelease path
>>>> 8 j0 192.168.0.10 j0.local 2 13.0-CURRENT /jails/j0
>>>> 10 j1 - j1.local 1 13.0-CURRENT /jails/j1
>>>> 12 j2 - j2.local 1 13.0-CURRENT /jails/j2
>>>>
>>>> the jails are running this versions:
>>>>
>>>> root at fbsd13:~ # jexec -l j0 freebsd-version -u
>>>> 12.2-STABLE
>>>> root at fbsd13:~ # jexec -l j1 freebsd-version -u
>>>> 13.0-CURRENT
>>>> root at fbsd13:~ # jexec -l j2 freebsd-version -u
>>>> 12.2-STABLE
>>>>
>>>>
>>>> What is "osrelease"? Looking at the name, i would have guessed, it
>>>> is
>>>> the
>>>> version of the freebsd userland, running in the jail. But it does't
>>>> seem so.
>>>> j1 and j2 are VNET jails, so it seems the 1 in the vnet column
>>>> signifies this,
>>>> j0 is a "standard" jail using the hosts network stack, so the 2
>>>> stands
>>>> for standard?
>>>>
>>>
>>> Hi,
>>>
>>> osrelease is what the jail sees as kern.osrelease and uname -r (see:
>>> jail(8)) (i.e. kernel version); it's either specified during jail
>>> creation or inherited from the parent prison if none is specified.
>>>
>>> It looks like it's exporting a jailsys int for vnet, so these
>>> correspond to:
>>>
>>> JAIL_SYS_DISABLE=0
>>> JAIL_SYS_NEW=1
>>> JAIL_SYS_INHERIT=2
>>>
>>> So 2 is 'use parent vnet', 1 is 'new one created' -- I don't see this
>>> described in either jls(1) or jail(8), it'd probably be nice if we
>>> translated jailsys ints into "new"/"inherit" since one specifies
>>> "new"/"inherit" for them during creation.
>>
>> True, that would be more human-readable. For that matter, I could
>> report booleans (such as allow.whatever) as "true" or "false" as well.
>> In both cases, the strings pass back to jail(8) OK, but I wonder if
>> there are any scripts out there that actually use those values in
>> their
>> numeric form.
>>
>> - Jamie
>
> Thanks,
>
> I did not realise, that osrelease and osreldate are "writable".
> When setting them in jail.conf they are shown by jls:
>
> root at fbsd13:~ # jls -h jid name vnet ip4.addr host.hostname osrelease
> osreldate path | column -t
> jid name vnet ip4.addr host.hostname osrelease osreldate
> path
> 26 j0 2 192.168.0.10 j0 12.2-STABLE 1202504
> /jails/j0
> 27 j1 1 - j1 13.0-CURRENT 1300131
> /jails/j1
> 28 j2 1 - j2 12.2-STABLE 1202504
> /jails/j2
> 29 j4 1 - j4 12.2-STABLE 1202504
> /jails/j4
> 33 j5 2 192.168.0.15 j5 12.2-STABLE 1202504
> /jails/j5
>
>
>
> the representation of the vnet value differs, depending on the used
> jls parameters:
>
> root at fbsd13:~ # jls -j j0 -h vnet
> vnet
> 2
>
> root at fbsd13:~ # jls -j j1 -h vnet
> vnet
> 1
>
> and
>
> root at fbsd13:~ # jls -j j0 -n
> devfs_ruleset=4 nodying enforce_statfs=2 host=new ip4=disable
> ip6=disable
> jid=26 name=j0 osreldate=1202504 osrelease=12.2-STABLE parent=0
> path=/jails/j0
> nopersist securelevel=-1 sysvmsg=new sysvsem=new sysvshm=new
> vnet=inherit ...
>
> root at fbsd13:~ # jls -j j1 -n
> devfs_ruleset=4 nodying enforce_statfs=2 host=new ip4=inherit
> ip6=inherit
> jid=27 name=j1 osreldate=1300131 osrelease=13.0-CURRENT parent=0
> path=/jails/j1
> nopersist securelevel=-1 sysvmsg=new sysvsem=new sysvshm=new vnet=new
> ...
Well, that's interesting. It makes sense that the "-n" parameters
have to be something that would work passed to jail(8), but I'm glad
to be reminded I used the text values (the numbers would have worked).
And that means changing the other output is half done already!
- Jamie
More information about the freebsd-questions
mailing list