Bug 72282

Summary: systemd.show_status=true ignored if specified BEFORE quiet parameter
Product: systemd Reporter: rik.theys
Component: generalAssignee: systemd-bugs
Status: RESOLVED FIXED QA Contact: systemd-bugs
Severity: normal    
Priority: medium    
Version: unspecified   
Hardware: Other   
OS: All   
See Also: http://bugs.debian.org/729805
Whiteboard:
i915 platform: i915 features:
Attachments: Patch to make systemd respect the show_status kernel parameter even if quiet is set

Description rik.theys 2013-12-03 19:58:11 UTC
Hi,

When the systemd.show_status=1 kernel parameter is specified, systemd should show the status messages. When "quiet" is also specified as a kernel parameter, show_status defaults to 0, but should be honored when explicitly set.

If systemd.show_status=1 is specified before the "quiet" parameter on the kernel command line, it is set to 0 and ignored by the quiet parameter. If systemd.show_status=1 is specified after the quiet parameter it works as expected.

See Debian bug 729805 for investigation by Michael Stapelberg.

Regards,

Rik
Comment 1 Zbigniew Jedrzejewski-Szmek 2013-12-03 20:28:24 UTC
That's the way that kernel parameters work: they are done "in order", so the last one wins. Let's say that you specified systemd.show_status=1 in grub config, but decide to have quiet boot for once and append 'quiet' in the bootloader menu. Here a behaviour opposite what you're suggesting is the expected one. Those are debugging options, and too much finesse isn't required.
Comment 2 Zbigniew Jedrzejewski-Szmek 2013-12-03 20:30:01 UTC
Let me amend that: I'm not against such a change in principle, but I just don't think it worth the complexity. If you can come up with a decent patch, it'll be merged.
Comment 3 rik.theys 2013-12-06 09:24:01 UTC
Created attachment 90346 [details] [review]
Patch to make systemd respect the show_status kernel parameter even if quiet is set

This patch will make systemd respect the show_status kernel parameter even if it is specified before "quiet" on the command line.
Comment 4 Zbigniew Jedrzejewski-Szmek 2013-12-06 13:39:07 UTC
OK, that would work, but it's not really in style. Can you make arg_show_status and int, and then set it to 1 when set with systemd.status=1, and to -1 when set with quiet, and change the condition to check if it is <= 0 when setting is with quiet?
Comment 5 rik.theys 2013-12-06 20:17:13 UTC
(In reply to comment #4)
> OK, that would work, but it's not really in style. Can you make
> arg_show_status and int, and then set it to 1 when set with
> systemd.status=1, and to -1 when set with quiet, and change the condition to
> check if it is <= 0 when setting is with quiet?

Do you mean arg_show_status or my show_status_set variable? If I would arg_show_status = 0 as the default, the show_status would default to off where it should be on?

If you mean show_status_set, I'll update the patch with your suggestion.

Regards,

Rik
Comment 6 Zbigniew Jedrzejewski-Szmek 2013-12-06 20:34:00 UTC
(In reply to comment #5)
> Do you mean arg_show_status or my show_status_set variable? If I would
> arg_show_status = 0 as the default, the show_status would default to off
> where it should be on?
arg_show_status. If it has three states, it should be enough to accomodate all cases.
Comment 7 rik.theys 2014-02-02 19:15:58 UTC
Hi,

It seems this was fixed by commit d450b6f2a9dd8a7fb14e9f8f771ddd70de7afc5e.

The commit introduced an 'auto' option for systemd.show_status and it looks like it now also works when systemd.show_status is before the quiet parameter on the kernel command line (not tested).

So marking this as resolved.

Regards,

Rik

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.