Re: Bug#727708: tech-ctte: Decide which init system to default to in Debian.
Marko Randjelovic <markoran <at> eunet.rs> writes:
> > >
> > That's exactly how I feel when I want to create a small daemon using a
> > SystemV init script. I feel like building an airplane from scratch while
> > I would just use a bike.
Sure, systemd is "bloated". Just like the kernel is bloated, I presume.
A kernel which runs on anything from bikes to space planes. (Literally.)
A systemd service file is five lines.
Want more features? Add more lines.
> Use /etc/init.d/skeleton and you'll see it's very simple.
Want more features in your init script? Like, say, a reliable way to
figure out if any parts of your server are still running after it
crashed? Or a way to determine that it has started up correctly?
Or a reliable log of all of its output in one location? (With a
filter that dumps the last 100 lines of debug log to disk _only_
if there's an error right behind them!) Or a way to figure out
which dependency prevented your daemon from running (and which
seamlessly resumes bootup when you fix the problem)? Or a pre-
determined environment without stupid surprises like a LOCALE
set to Chinese (or something more insiduous like, say, an
ignored signal) when you start something by hand? Or a private
/tmp? Or any other of the cool features systemd offers?
systemd: For each of these, add a line to your service script.
If it's not the default anyway.
SysV: Sorry, you're screwed. (Mostly.)
SysV init scripts do not even *have* a reliable dependency system.
The SysV manager can tell that the thing started and didn't exit
nonzero, but that's not always the same thing as "running".
> Shell is a programming language. It cannot be less flexible then config
Besides, this is not about flexibility. You're free to run a small and
simple shell script to start your service if you need to, just like
today you're free to hide your not-so-small and no-longer-simple script
(see above about reliably detecting whether a service is in fact up)
inside a bloated SysV init script.
This is about features. Many of the features systemd provides (and which
I refuse to live without, having become accustomed to them over the last
year or so) are, by basic Unix design, not available to something that is
not PID 1.
-- Matthias Urlichs