I'm not sure I understand your comment, sysvinit is the one that only addresses the easiest and most popular use cases and has lots of cut corners that make it much less useful than it should be, systemd is the full featured and much more thought through system. sysvinit has no reliable way to shut down a process and the process monitoring and re-spawning feature is mostly unused, barely suitable for local terminals. systemd fixes many of the design elements which were unfinished in sysvinit when it was set in stone in the 80s.
Posted Aug 16, 2012 21:39 UTC (Thu) by dlang (✭ supporter ✭, #313)
[Link]
systemd doesn't satisfy all the functionality of the system it replaces.
nobody is saying that the init process cannot be improved, but "improving" it by adding some things and removing others is highly questionable.
McRae: Are We Removing What Defines Arch Linux?
Posted Aug 16, 2012 23:58 UTC (Thu) by anselm (subscriber, #2796)
[Link]
systemd doesn't satisfy all the functionality of the system it replaces.
I was under the impression that systemd can handle existing SysV init scripts (and then some). Is there something in /etc/inittab that systemd doesn't support? I'd be surprised.
McRae: Are We Removing What Defines Arch Linux?
Posted Aug 17, 2012 9:03 UTC (Fri) by mpr22 (subscriber, #60784)
[Link]
systemd doesn't (and AFAIK won't) support custom verbs in init scripts, so any program which was built on the assumption that you could have custom verbs in init scripts requires additional work to make systemd-friendly.
McRae: Are We Removing What Defines Arch Linux?
Posted Aug 17, 2012 15:37 UTC (Fri) by mjg59 (subscriber, #23239)
[Link]
Posted Aug 17, 2012 10:03 UTC (Fri) by cortana (subscriber, #24596)
[Link]
Existing SysV init scripts that launch multiple daemons just fine don't work under systemd. Regardless of whether such scripts are a good idea, they exist out there.
McRae: Are We Removing What Defines Arch Linux?
Posted Aug 17, 2012 10:36 UTC (Fri) by anselm (subscriber, #2796)
[Link]
That sounds fixable to me.
McRae: Are We Removing What Defines Arch Linux?
Posted Aug 17, 2012 13:58 UTC (Fri) by cortana (subscriber, #24596)
[Link]
I don't really see how, without adding a lot of hacks to guess which processes started by an init script should be considered permanent, and which should be considered transient.
The exact example that I'm thinking of was Debian's samba init script, that starts both smbd and nmbd. A bug in nmbd would cause nmbd to exit when my network configuration changed. The bug was fixed by invoking '/etc/init.d/samba start' whenever a network interface came up, however under systemd this was a no-op if smbd was still running, because samba.service was already considered to be 'started'.
McRae: Are We Removing What Defines Arch Linux?
Posted Aug 17, 2012 14:17 UTC (Fri) by mpr22 (subscriber, #60784)
[Link]
Is there some very good reason why smbd and nmbdneed to be launched by the same script? Because the fix that seems trivially obvious to this armchair general is to have separate smbd.service and nmbd.service units.
McRae: Are We Removing What Defines Arch Linux?
Posted Aug 17, 2012 15:46 UTC (Fri) by cortana (subscriber, #24596)
[Link]
That's just the way Debian's samba init script is written. I was just pointing it out as a specific examine of an instance of impedance mismatch between the real world and systemd's model, in support of dlang's statement that "systemd doesn't satisfy all the functionality of the system it replaces".
McRae: Are We Removing What Defines Arch Linux?
Posted Aug 19, 2012 6:27 UTC (Sun) by cmccabe (guest, #60281)
[Link]
SysV init doesn't have support for dependencies. Adding a call to "service restart smbd" in the networking start scripts is a horrible, horrible hack.
If we're going to talk about horrible, horrible hacks, the obvious thing to do is add an smbd sysv init script, and an nmbd sysv init script, and have the one call the other. Meanwhile, if you use systemd, it will just work.
McRae: Are We Removing What Defines Arch Linux?
Posted Aug 17, 2012 16:53 UTC (Fri) by Cyberax (✭ supporter ✭, #52523)
[Link]
>I don't really see how, without adding a lot of hacks to guess which processes started by an init script should be considered permanent, and which should be considered transient.
Uhm. What's the problem here? All the started processes would be in a single process group which will live on until all of them die. And since you're using SysV emulation it'll be your duty to manage them.
I've just tried to write a simple script that starts two copies of Apache. It works.
McRae: Are We Removing What Defines Arch Linux?
Posted Aug 17, 2012 19:18 UTC (Fri) by cortana (subscriber, #24596)
[Link]
As I tried to describe above, 'systemctl samba.service start' does *not* start nmbd if smbd is still running. It doesn't even try to run the samba init script, because it sees smbd still running and assumes the unit is ok.
McRae: Are We Removing What Defines Arch Linux?
Posted Aug 17, 2012 19:43 UTC (Fri) by Cyberax (✭ supporter ✭, #52523)
[Link]
Why should it? Do it yourself, if you want to use SysV scripts.
McRae: Are We Removing What Defines Arch Linux?
Posted Aug 17, 2012 19:53 UTC (Fri) by cortana (subscriber, #24596)
[Link]
> Why should it?
Because this was the behaviour of the system before systemd is introduced.
> Do it yourself, if you want to use SysV scripts.
I don't want to use SysV scripts. I just want to have a computer that doesn't become inaccessible to other machines on my network when my wireless connection flakes out. I am just pointing out an area where systemd's backwards-compatibility with existing init scripts in the wild is not complete!
McRae: Are We Removing What Defines Arch Linux?
Posted Aug 17, 2012 20:30 UTC (Fri) by Cyberax (✭ supporter ✭, #52523)
[Link]
Nope. SysV doesn't do anything with dependencies. It's entirely up to script's author to deal with them. It might have been handled in your particular scripts, but it's certainly not universal.
McRae: Are We Removing What Defines Arch Linux?
Posted Aug 19, 2012 20:19 UTC (Sun) by Eckhart (guest, #74500)
[Link]
> Nope. SysV doesn't do anything with dependencies. It's entirely up to script's author to deal with them. It might have been handled in your particular scripts, but it's certainly not universal.
Cortana just wants to point out that there are some hacks in SysV init scripts that are not supported anymore with systemd.
In the given example, several services have been merged into a single init script to overcome the (non-existant) dependency handling of SysV. Systemd isn't able to handle this script properly, since it assumes that starting an already-running service isn't possible.
McRae: Are We Removing What Defines Arch Linux?
Posted Aug 19, 2012 20:24 UTC (Sun) by anselm (subscriber, #2796)
[Link]
I don't think systemd must support every single hack that is possible in SysV init scripts if it is trivial to do the same thing natively and it works better afterwards, too.
McRae: Are We Removing What Defines Arch Linux?
Posted Aug 17, 2012 15:43 UTC (Fri) by Cyberax (✭ supporter ✭, #52523)
[Link]
Why they don't work? They should work fine in SysV compat mode.
McRae: Are We Removing What Defines Arch Linux?
Posted Aug 17, 2012 15:50 UTC (Fri) by cortana (subscriber, #24596)
[Link]