Openembedded Core Discussions
 help / color / mirror / Atom feed
From: Martin Jansa <martin.jansa@gmail.com>
To: ChenQi <Qi.Chen@windriver.com>
Cc: Koen Kooi <koen@dominion.thruhere.net>,
	openembedded-core@lists.openembedded.org
Subject: Re: [PATCH 1/1] systemd: make /etc/sysctl.conf have real effect
Date: Fri, 7 Nov 2014 15:29:07 +0100	[thread overview]
Message-ID: <20141107142907.GD2444@jama> (raw)
In-Reply-To: <545C3DD7.60308@windriver.com>

[-- Attachment #1: Type: text/plain, Size: 5334 bytes --]

On Fri, Nov 07, 2014 at 11:34:47AM +0800, ChenQi wrote:
> On 11/07/2014 06:38 AM, Randy Witt wrote:
> > On 11/06/2014 05:29 AM, Koen Kooi wrote:
> >>
> >> Op 6 nov. 2014, om 12:59 heeft ChenQi <Qi.Chen@windriver.com> het 
> >> volgende geschreven:
> >>
> >>>
> >>>
> >>> On 11/06/2014 06:33 PM, Koen Kooi wrote:
> >>>>> Op 6 nov. 2014, om 08:59 heeft ChenQi <Qi.Chen@windriver.com> het 
> >>>>> volgende geschreven:
> >>>>>
> >>>>> On 11/06/2014 03:48 PM, Koen Kooi wrote:
> >>>>>> Op 6 nov. 2014, om 08:32 heeft Chen Qi <Qi.Chen@windriver.com> 
> >>>>>> het volgende geschreven:
> >>>>>>
> >>>>>>> In systemd, /etc/sysctl.conf is actually ignored by systemd-sysctl,
> >>>>>>> because this command only examine *.conf files under a bunch of 
> >>>>>>> directories
> >>>>>>> like /etc/sysctl.d or /usr/lib/sysctl.d.
> >>>>>>>
> >>>>>>> The problem is we are used to configuring kernel parameters in 
> >>>>>>> /etc/sysctl.conf,
> >>>>>>> so it would be really strange if the configuration in that file 
> >>>>>>> doesn't have any
> >>>>>>> effect.
> >>>>>>>
> >>>>>>> This patch reference Fedora's solution to this problem, creating 
> >>>>>>> a symlink to
> >>>>>>> /etc/sysctl.conf under /etc/sysctl.d/.
> >>>>>> Shouldn't this be done in procps instead?
> >>>>>>
> >>>>> Actually, the problem is not about `sysctl' command.
> >>>>> procps provides `sysctl', but busybox also provides this command.
> >>>>> It's very possible that on our generated image, procps is not 
> >>>>> installed but `sysctl' command is available.
> >>>>> Both busybox's and procps's `sysctl' command takes 
> >>>>> /etc/sysctl.conf into consideration.
> >>>> Right, but only procps installs that file.
> >>>
> >>> As busybox provides `sysctl' utility, is it reasonable that it also 
> >>> provides a corresponding configuration file (/etc/sysctl.conf)? 
> >>> Should we make a patch for busybox?
> >>>
> >>>
> >>>>> Now, systemd provides a similar utility called `systemd-sysctl' 
> >>>>> which is executed at boot time via systemd-sysctl.service.
> >>>>>
> >>>>> So our actually problem is that systemd-sysctl ignores 
> >>>>> /etc/sysctl.conf, which makes it somewhat strange, especially to 
> >>>>> users who are used to configuring parameters in sysctl.conf.
> >>>>> And this patch solves this problem by adding a symlink under 
> >>>>> /etc/sysctl.d/.
> >>>>>
> >>>>> That's why I think we should put this in systemd.
> >>>> You're adding a symlink to a file which only exists if you install 
> >>>> procps, which isn't in RDEPENDS.
> >>>>
> >>>
> >>> As I said before, procps is *not* necessary for the sysctl mechanism 
> >>> to have effect.
> >>> (Think about systemd-based core-image-minimal image.)
> >>>
> >>> Busybox provides `sysctl', systemd provides `systemd-sysctl'.
> >>> (It's an easy program, there might exist other packages that provide 
> >>> it too.)
> >>>
> >>> /etc/sysctl.conf is a configuration file which is very likely to be 
> >>> modified or created by administrators to configure kernel parameters.
> >>> (You can't expect administrators to all start learning systemd, 
> >>> trying to understand the gap and differences. In addition, they may 
> >>> have scripts that edit /etc/sysctl.conf to automate their work.)
> >>>
> >>> The point of the symlink is to ensure that when users edit 
> >>> /etc/sysctl.conf (or create one), configurations in that file will 
> >>> have effect at boot time.
> >>>
> >>> Just think about this problem from a standpoint of user experience.
> >>
> >> You still haven't convinced me that shipping a broken symlink is a 
> >> good idea. I'm pretty sure it's not even allowed in out commit 
> >> guidelines.
> >>
> > I agree, even in Fedora's case, both /etc/sysctl.conf and 
> > /etc/sysctl.d/99-sysctl.conf come from the same package, 
> > initscripts-9.51-2.
> >
> >
> 
> Koen & Witt,
> 
> When I started out to solve this problem, I basically came up with three 
> solutions. Please see details below. I chose to use solution 3 because I 
> think it's better than the other two. Please tell me which one you like, 
> or please tell me your solution.
> 
> Solution 1:
> Make 'sysctl.conf' managed by ALTERNATIVES mechanism in OE. Busybox, 
> procps and systemd all provide this file. And the symlink is still in 
> systemd.
> (My opinion for this one: over engineering)
> 
> Solution 2:
> Make base-files provide sysctl.conf and /etc/sysctl.d/99-sysctl.conf (in 
> case of systemd). procps no longer provides sysctl.conf.
> (My opinion for this one: sysctl.conf doesn't logically belong to 
> base-files.)
> 
> Solution 3:
> Let systemd provide a broken symlink '/etc/sysctl.d/99-sysctl.conf' and 
> don't change anything else.
> 
> Which of the above three solutions do you like? Do you have any other 
> suggestion?

Solution 4 (suggested by Koen and supported by me):
Provide the systemd symlink by the same package which provides sysctl.conf in
your image.

If you want to get better user experience for admins with scripts to
update their /etc/sysctl.conf then submit patch to systemd upstream to
process that file, so that their experience will be the same on all
systemd based systems they manage.

-- 
Martin 'JaMa' Jansa     jabber: Martin.Jansa@gmail.com

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 188 bytes --]

  reply	other threads:[~2014-11-07 14:29 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-11-06  7:32 [PATCH 0/1] systemd: make /etc/sysctl.conf have real effect Chen Qi
2014-11-06  7:32 ` [PATCH 1/1] " Chen Qi
2014-11-06  7:48   ` Koen Kooi
2014-11-06  7:59     ` ChenQi
2014-11-06 10:33       ` Koen Kooi
2014-11-06 11:59         ` ChenQi
2014-11-06 13:29           ` Koen Kooi
2014-11-06 22:38             ` Randy Witt
2014-11-07  3:34               ` ChenQi
2014-11-07 14:29                 ` Martin Jansa [this message]
2014-11-09  7:06                   ` ChenQi

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20141107142907.GD2444@jama \
    --to=martin.jansa@gmail.com \
    --cc=Qi.Chen@windriver.com \
    --cc=koen@dominion.thruhere.net \
    --cc=openembedded-core@lists.openembedded.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox