[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Init system deba{te|cle}





Le 08.11.2013 13:48, Marko Randjelovic a écrit :
On Mon, 04 Nov 2013 10:44:23 -0600
Conrad Nelson <yaro@marupa.net> wrote:

Not everyone is a programmer, but a lot of non-programmers are still
admins but are not interested in working with shell scripts if they
don't have to.

We already have: skeleton, /etc/default. I agree it's poor, but
as I said, and at least for me, the right way is to extend existing software:

(1) add new features to sysvinit
(2) add new software in addition to sysvinit
(3) make init scripts more correct (abstraction)
(4) extend configurability (more options in /etc/default/*)

(3) makes (4) easily possible

And if sysvinit is in accord with UNIX philosophy,
and as they say it is, than I don't see why (1) and (2) would not be
possible, too, and with not to much effort. About what they say as
disadvantages of sysvinit (lack of features), is not really to blame
sysvinit, because it does one thing and do it right[1]. Other features
could be implemented as additional software. On the other hand, what
actually was done was writing new software that make old software
obsolete and that do *many* things, which is not in accord with UNIX
philosophy (and is in accord with authoritarian philosophy).

Further, shell scripts can have any number of bugs in
them that are harder to find than unit files which rarely have more than
a dozen lines in them.

Every complex software has bugs, including complex init system.

[1]

https://en.wikipedia.org/wiki/Unix_philosophy#Mike_Gancarz:_The_UNIX_Philosophy
rule 2

--
http://mr.flossdaily.org


While I tend to agree on most of your words here, you made a little mistake: "what actually was done was writing new software that make old software". Systemd is compatible with sysvinit ( sysvinit's scripts can be used by systemd, it is why you can install systemd on Debian and remove sysvinit, without changing any sysvinit script and things will still work. I tried it 1-2 years ago). It's sysvinit which is not compatible (it does not supports the systemd's configuration files) but since systemd is meant to be an evolution, it's normal. Sometimes, making older softwares not able to understand latest ones is mandatory. Or we would have to write everything in a XML way to avoid it... But it this happens, it will probably trigger Ragnarök.

Now, your words are also interesting on a point. Since sysvinit does only one thing and does it correctly, which allows to write programs to extends it, I wonder if a program could be made to make systemd's script understandable by sysvinit? Of course, it would depends on, or rather recommend in Debian's terminology, other tools to achieve feature completeness of systemd. Such a translator would indeed be an interesting thing, because it would allow using systemd's configurations which are way easier in lot of people's mind on sysvinit, and that would remove the main argument for switching to systemd.


Reply to: