systemd: Is it wrong?

Matthew Garrett mjg59 at srcf.ucam.org
Sun Jul 10 21:35:58 UTC 2011


On Sun, Jul 10, 2011 at 03:56:25PM -0500, Chris Adams wrote:
> Once upon a time, Matthew Garrett <mjg59 at srcf.ucam.org> said:
> > The suggestion isn't that having the options is wrong
> 
> Well, that's what you said before (conveniently snipped from your
> reply).  You compared CLI args/env vars to the BKL as something to be
> eliminated; specifically, you said (and I quoted):
> 
> > In this case there are sound
> > technical arguments against configuration by command line argument or
> > environment variable
> 
> You have still failed to enumerate even one of the "sound technical
> arguments".

"Configuration by", not overriding configuration. It's a mistake to have 
your daemon's configuration be handled by a shell script that's sourced 
into existing environment. It's reasonable for an admin to override 
configuration on an as-needed basis.

> > it's that having 
> > them as the primary means of configuration is poor design. If your 
> > entire configuration takes the form of a shell script that constructs a 
> > set of command line options then you've increased fragility for no 
> > benefit. Having a proper configuration file and allowing admins to 
> > override specific aspects of that from the command line isn't a problem.
> 
> You are moving the target (to a worst-case example) and still not
> winning your argument.

The discussion was about having significant quantities of configuration 
in /etc/sysconf in the form of shell fragments.

> This is more than theoretical to me; a small package I maintain is one
> example of a command-line configured daemon.  The shmpps daemon is a
> tiny little daemon that reads a timing pulse-per-second and updates a
> shared memory segment.  It uses a few command line arguments to set the
> source port/type and shared memory segment destination; right now, that
> is done for the init script by a file in /etc/sysconfig.

And that's a bad thing to do. You're sourcing your configuration in an 
unsanitised environment. There's a huge number of ways that this can go 
wrong depending on the admin's local configuration, which is clearly 
undesirable.

> This is a small, light-weight daemon, and doesn't need a configuration
> file parser.  This is a valid way that Unix daemons have run for
> decades, and you are saying that should be removed.  I guess every small
> daemon now needs to include its own config file parser, replacing the
> already-existing getopt() call?  How is this "better"?

Nobody's said it should be removed. Lennart's said that it sucks, and I 
agree. But all of this would still be better with a simple config parser 
that's shared between any daemons that want it.

-- 
Matthew Garrett | mjg59 at srcf.ucam.org


More information about the devel mailing list