[systemd-devel] [PATCH v3] journalctl: Add support for showing messages from a previous boot

Jan Janssen medhefgo at web.de
Mon Jun 10 05:21:00 PDT 2013


On 06/10/2013 12:15 AM, Zbigniew Jędrzejewski-Szmek wrote:
> On Wed, Jun 05, 2013 at 02:32:35PM +0200, Jan Janssen wrote:
>>                           <varlistentry>
>> -                                <term><option>-b</option></term>
>> -                                <term><option>--this-boot</option></term>
>> -
>> -                                <listitem><para>Show data only from
>> -                                current boot. This will add a match
>> -                                for <literal>_BOOT_ID=</literal> for
>> -                                the current boot ID of the
>> -                                kernel.</para></listitem>
>> +                                <term><option>-b <optional><replaceable>ID</replaceable></optional></option></term>
>> +                                <term><option>--boot=<optional><replaceable>ID</replaceable></optional></option></term>
>> +
>> +                                <listitem><para>Show messages from specified
>> +                                boot <replaceable>ID</replaceable>. This will
>> +                                add a match for <literal>_BOOT_ID=</literal>.</para>
>> +
>> +                                <para>The argument is a 128 bit ID given in
>> +                                short or UUID form and optionally followed by
>> +                                <literal>:n</literal> which identifies the nth
>> +                                boot relative to the boot ID given to the left
>> +                                of <literal>:</literal>. Supplying a negative
>> +                                value will look for a past boot and a positive
>> +                                value for a future boot. The boot IDs are
>> +                                searched for in chronological order.</para>
>> +
>> +                                <para>If no number is provided after
>> +                                <literal>:</literal>, <literal>-1</literal> is
>> +                                assumed. A value of 0 is valid and equivalent to
>> +                                omitting <literal>:0</literal>. The boot ID may
>> +                                be omitted if <literal>:</literal> is provided,
>> +                                which will assume the current boot ID as the
>> +                                reference.</para>
>> +
>> +                                <para>For example, if <literal>962e0810b0c44735a6a70e7132996502</literal>
>> +                                were the ID of the current boot, the following
>> +                                are all equivalent:
>> +                                <option>962e0810b0c44735a6a70e7132996502</option>,
>> +                                <option>962e0810-b0c4-4735-a6a7-0e7132996502</option>,
>> +                                <option>:0</option>,
>> +                                <option>962e0810b0c44735a6a70e7132996502:0</option>,
>> +                                <option>962e0810-b0c4-4735-a6a7-0e7132996502:0</option>.
>> +                                Additionally, if <literal>04089164-6fb3-4826-a7d1-207b11a02169</literal>
>> +                                were the previous boot ID the following are equivalent:
>> +                                <option>040891646fb34826a7d1207b11a02169</option>,
>> +                                <option>04089164-6fb3-4826-a7d1-207b11a02169</option>,
>> +                                <option>:-1</option>, <option>:</option>,
>> +                                <option>962e0810b0c44735a6a70e7132996502:-1</option>,
>> +                                <option>962e0810-b0c4-4735-a6a7-0e7132996502:-1</option>.
>
>> +                <para>Show all kernel logs from last boot:</para>
>> +
>> +                <programlisting>journalctl -k -b :</programlisting>
>> +
>
> Hm, I somehow don't find this user interface convincing... For me, the
> most common usecases are:
> 1 (by far) - show current boot
> 2 (occasionally) - show previous boot
>
> I guess that if I had the ability to show next-previous,
> next-next-previous, ..., boots, I would sometimes use that. But I
> think we should foremost make the two usecases above easy.
>
> IMHO, the argument to --boot should be optional, and should default to
> "current boot". This way we keep also compatibility with current
> interface. Also, I don't see why we would need to allow boot id's
> with dashes: we don't allow that currently, and the only likely source
> of a boot id is the user using the mouse to copy the boot id from
> journalctl output, so there's little point.
The argument is optional. It's both advertised in --help and in the
man page (the <optional> tag does the formatting). I will clarify,
though.
Personally, I prefer to allow dashes. We should give the user the
freedom to provide the ID in any way he wants.
But more importantly, is clashes with options in general. It's not
instantly clear that the "-1" in "journalctl -b -1" is an argument
to "-b". It actually, breaks a user's expectation that stuff starting
with "-" is treated as an option. And there are lots of tools that
use "-1" as options.
> With dashes and colons out of the way, I'd propose:
> -0 or 0 or nothing to refer to current boot,
> -1 to refer to previous boot,
> and so on,
> 1 to refer to first boot ever [1, 2],
> 2 to the second boot, etc.
I certainly like that "1" would mean first boot ever and so on.
I can/will introduce it in a follow up patch, once a proper syntax
for specifying the boot ID is agreed upon. Maybe even use a different
char for this? It has potential for introducing confusion...
Maybe use "@1" as syntax for this?
> And <bootid> to refer to boot <bootid>,
> <bootid>-0 and <bootid>+0 to refer to <bootid>,
> <bootid>-1, <bootid>-2, to refer to earlier boots,
> and <bootid>+1, <bootid>+2 to refer to later boots.
>
> Zbyszek
>
> [1] ...well, ever means since the beginning of logs here :)
>
> [1] Should boots since installation be numbered from 0 or 1?
>      I kind of like numbering them from 0, but the scheme I
>      outlined above means that we have consistent meaning for
>      all numbers modulo number of boots, with current boot
>      being 0.
>

Jan


More information about the systemd-devel mailing list