News for hackers. Stuff that matters.
Re:Debian reconsiders init-system diversity by evil-olive on Tuesday November 12, 2019 @01:25AM (#21511966)
For a service manager, yes systemd is great.

For a replacement for cron...sure, that's nice too. The benefit of being able to manually activate a timer in order to test it is completely worth it.

For an NTP implementation? Eh. I'm not sure why that needs to be bundled in under the same umbrella as the service manager. It's also just an SNTP implementation, not full NTP, so it's notably feature-crippled relative to better options like chrony.

Network management? Meh. Again, that strikes me as something that should be loosely coupled to the service manager.

A UEFI implementation? gummiboot was assimilated and become systemd-boot. Was that necessary for technical reasons, or was it just moving a project under the systemd umbrella similar to how there's an umbrella of GNU projects?

Container management? Another place where systemd-nspawn doesn't strike me as notably better than the alternatives.

At a certain point "systemd" becomes a brand more than anything else, sort of like what IBM has been trying to do with Watson. Yes, it beat Ken Jennings at Jeopardy and that's great. That doesn't mean anything associated with the overall brand is automatically equally amazing.

Re:Debian reconsiders init-system diversity by arianvanp on Tuesday November 12, 2019 @03:29AM (#21512509)
Service manager and container spawner is the same thing. So yes. The whole insight of systemd is that the cgroup tree can be used for service management. It was a container manager before container management was even a thing. (Including private mount namespaces, network namespaces, all that shebang)

Systemd-nspawn contains no new code; just calls existing systemd library code. It gives people a familiar image based interface for a small cost in terms of lines of code.

Bootloader i have a less strong argument for but at least it allows them to iterate in hopefully-standards-soon.

Also systemd-boot is not an UEFI implementation. I'm not sure where you read that. It's an extremely small UEFI executable that lists a list of boot entries. (Note that an UEFI executable is just a Windows .EXE file).

UEFI itself has more lines of code than the Linux kernel, replacing it would be insane (though very noble. See coreboot and Linuxboot projects).

One argument is that it allows them to iterate on standards like the following:

https://systemd.io/BOOT_LOADER_INTERFACE.html

And https://systemd.io/BOOT_LOADER_SPECIFICATION.html

And https://systemd.io/AUTOMATIC_BOOT_ASSESSMENT.html

Re:Debian reconsiders init-system diversity by weinzierl on Tuesday November 12, 2019 @02:06AM (#21512119)
What I always wondered is: Why is a lot of the discussion about systemd vs initd when systemd is so many things. And the follow-up question would be: Why hasn't anyone taken apart systemd and reused only the parts they found useful, like the system manager for example. "Systemd: The Good Parts", so to speak.
Re:Debian reconsiders init-system diversity by eleitl on Tuesday November 12, 2019 @05:19AM (#21512996)
> when systemd is so many things

Because it was originally advertized as an optional init replacement. The acrimonious debates were because a number of people did not believe that's all is going to be, given the history of its designers.

Of course, nowadays many people would flat-out deny that systemd was sold as an init replacement, and claim that what you see was the original intention all along.

Re:Debian reconsiders init-system diversity by bkor on Tuesday November 12, 2019 @12:26PM (#21515942)
At the time of the Debian debate around systemd it was already very clear that systemd was not just an init system. The systemd website at that time already mentioned it to be "basic building block for Linux". People just pretending it is or only should be an init system was one of the annoying things about the discussion; people only compared the init system part of things and ignored that systemd offered more to developers. Any additional functionality was "not to be used" or "developers should offer alternatives". That wasn't very realistic then and now.
Re:Debian reconsiders init-system diversity by diffeomorphism on Tuesday November 12, 2019 @03:52AM (#21512624)
Mostly because the many projects under the systemd umbrella are somewhat coupled and not that easy to use outside of it.

For example many of the larger DEs use logind because it is good at what it does and consolekit at that time was not really active anymore. That meant that for example freebsd had to either make the DEs work with consolekit (and maintain it) or make a logind implementation work with their implementation.

This is one of the confusing things about the discussion. The systemd project very much follows the "unix way" in that there are lots of subprojects that do one thing well, but is developed in a cathedral style (just like the *BSDs are) and not easily reusable, which kinda loses the benefit.

Re:Debian reconsiders init-system diversity by bkor on Tuesday November 12, 2019 @04:08AM (#21512698)
> many of the larger DEs use logind because it is good at what it does and consolekit at that time was not really active anymore.

More that ConsoleKit developers and logind/systemd overlapped. For GNOME, logind seemed better and used to be separate. A warning that it would not always stay decoupled was underestimated/ignored.

Once logind was tied to systemd all hell broke loose :-P

Having something like systemd is great; e.g. GNOME has various user services running. Nowadays systemd manages those user services. But as great as that is, it makes non-Linux more difficult. IMO systemd on Linux makes things very easy and it's better to standardize on it.

Re:Debian reconsiders init-system diversity by bipson on Tuesday November 12, 2019 @03:05AM (#21512387)
You can use systemd without almost all of the sideparts.

No need to use networkd for example, networkmanager works great along systemd.

Actually most my systems use only systemd and journalctl to my knowledge. I prefer my established tools for all other jobs.

Re:Debian reconsiders init-system diversity by yc12340 on Tuesday November 12, 2019 @03:24AM (#21512483)
> You can use systemd without almost all of the sideparts.

Can you? The whole premise of systemd revolves around ability to use existing init files, written by upstream developers.

Upstream init files are going to use arbitrary parts of systemd functionality, which may include network and container management, timers and God knows what else.

So in effect you HAVE to use those parts of systemd — unless you are insisting on writing all your init files from scratch (at which point you may as well use any of systemd alternatives).

Re:Debian reconsiders init-system diversity by pritambaral on Tuesday November 12, 2019 @04:18AM (#21512740)
> The whole premise of systemd revolves around ability to use existing init files, written by upstream developers.

There are many premises for which systemd was designed, but this is not one of them, let alone "the whole premise".

1. Before systemd, upstream developers were never precluded from supplying their own init files, and many often did.

2. Even in systemd, downstream maintainers and users were never precluded from modifying, overriding, or even completely replacing upstream-supplied init files.

The difference is that with SysV upstream-provided init files were often bad because upstream developers had to use a bunch of hacks in shell scripts to (necessarily reinvent and) supply features that were essential but SysV couldn't provide. The distro maintainers and users were thus sometimes _forced_ to try and fix upstream-supplied init files, but even they could do only so much because ... shell scripts on SysV.

Systemd allows everyone (upstream and downstream) to write better, cleaner, more maintainable init files.

> which may include network and container management, timers and God knows what else.

1. Timers are a core requirement of service management, and they're correctly a part of the service manager that is systemd.

2. network management (systemd-networkd, systemd-resolved, and .link, .network units) and container management (/var/lib/machines, machinectl etc) are _not_ service management features and are _not_ implemented in pid-1 systemd. I have also not seen any upstream package that used them. In fact, these features _cannot_ be used from service unit files.

> ... unless you are insisting on writing all your init files ...

It's not an all-or-nothing affair. It never was, not with systemd not with SysV.

> ... at which point you may as well use any of systemd alternatives

Only if you mistakenly believe that the "whole premise" of systemd was to disallow downstream of touching any unit files at all, which is false.

Re:Debian reconsiders init-system diversity by MertsA on Tuesday November 12, 2019 @06:58AM (#21513402)
>Only if you mistakenly believe that the "whole premise" of systemd was to disallow downstream of touching any unit files at all, which is false.

Not to mention, systemd is much better than the alternatives in terms of allowing the sysadmin to override parts of the config for a service without needing to merge in updates from upstream later on. I can just add an override for e.g. PrivateTmp=yes and if there's some update to the original unit file later on, it'll apply that update but it won't mess with my override that I set up.

With SysV I'm stuck with updates being a pain that I'd need to manually merge every time there's some change if I didn't want it to just nuke my changes.

Re:Debian reconsiders init-system diversity by bipson on Tuesday November 12, 2019 @03:49AM (#21512603)
For one, have you ever written an unit file? It literally takes 3 minutes.

And unless you are working with e.g containerized services (which you create yourself), why would a service need anything from networkd? I have never encountered a unit file like that on my system, and I don't run anything apart from systemd and journalctl. No networkd (I prefer NetworkManager), no systemd containers, no systemd ntp. I wonder if I even have those installed, why should I?

And all my services run just fine.

Re:Debian reconsiders init-system diversity by flukus on Tuesday November 12, 2019 @04:10AM (#21512711)
I've tried, it was more like 3 hours before I gave up and I was only writing it in the first place because systemd got involved where I didn't ask it too. All I did was mount a network drive from a shell script and systemd decided that it didn't know how to unmount it and instead hang for 90 seconds when the system shutdown.

It leaks into user land.

Re:Debian reconsiders init-system diversity by pritambaral on Tuesday November 12, 2019 @04:28AM (#21512770)
Systemd defaults to the kernel's standard way of unmounting filesystems (i.e., umount(2)). You would have to write a .mount file only if your filesystem _couldn't_ be unmounted the normal way.

The alternative for systemd would've been to shutdown the system without waiting for a clean unmount, which can lose data, which is what used to happen with SysV. The alternative for you would be to unmount your filesystem yourself before shutdown, which is what people used to do with SysV. Some SysV distros even had scripts that tried to automatically clean up mounts before shutdown, which is exactly what systemd does now, and your 90-second hangs would've shown up there too.

> It leaks into user land.

Init has always been in user land.

Re:Debian reconsiders init-system diversity by ohazi on Tuesday November 12, 2019 @03:16AM (#21512439)
But you can't use many of the sideparts without systemd.

I think systemd actually won when they absorbed udev.

Re:Debian reconsiders init-system diversity by jakeogh on Tuesday November 12, 2019 @05:25AM (#21513020)
Re:Debian reconsiders init-system diversity by bipson on Tuesday November 12, 2019 @03:20AM (#21512464)
That was not the argument though
Re:Debian reconsiders init-system diversity by dredmorbius on Tuesday November 12, 2019 @03:57AM (#21512645)
If the answers are more insightful than the question, perhaps the question was incorrect.
Re:Debian reconsiders init-system diversity by tsukurimashou on Tuesday November 12, 2019 @02:50AM (#21512304)
I'd say that is one of the complain I hear often "systemd is so many things", Unix philosophy tells you to do one thing and to do it well, a lot of people against systemd were against it for that reason.
Re:Debian reconsiders init-system diversity by bonzini on Tuesday November 12, 2019 @02:58AM (#21512350)
But then systemd is multiple binaries, each doing one thing. The only two that are really intertwined are systemd and journald.
Re:Debian reconsiders init-system diversity by nguoi on Tuesday November 12, 2019 @08:29AM (#21513876)
Unix-esque OSes run in my computer, my car, and my phone. That's not the Unix philosophy either.

It's a nice design rule for CLI utilities, it doesn't work for systems.

Re:Debian reconsiders init-system diversity by kevingadd on Tuesday November 12, 2019 @08:53AM (#21514042)
"do one thing and do it well" does not mean "intentionally only support one piece of hardware". If your do one thing is "offer a bootloader that works on your hardware" or "offer device detection and driver loading for all your devices" that is not somehow scope creep. It's the only sensible way to architect those things.

Similarly, curl supporting both HTTP and HTTPS is not a violation of "do one thing and do it well" - if you fail to support at least those two protocols, you've built a shitty tool.

It's best to consider "do one thing" in the context of "what does the user want the software to do". A web browser having lots of functionality baked in is not necessarily a violation of this principle if all of that functionality is used to solve one user problem (I want to view YouTube, or I want to use GMail). At that point, the factoring issue lies somewhere else - the definition of the web platform, etc.

Systemd attempts to solve very many user problems all at once, with varying levels of success, and other software packages have solved one or two of them at once instead. In that case there is a clear way to separate the ones that probably apply the "unix philosophy" and the ones that obviously do not.

The Linux kernel and related components themselves sort of violate this, but that's mostly a matter of necessity - super-modular microkernel designs have not worked out great in practice. However, it still is built around relatively narrowly-scoped drivers for individual devices or services, instead of massive Megadrivers that handle every component in your system. Your PC may have an Intel GPU integrated on the CPU die, but it's still using a separate video driver, and the video driver is probably separate from things like the compositor and the actual PnP layer beneath that detects what hardware you have.

If you look at the average USB device in Windows' device manager (this is probably true in Linux as well but I don't know how to dump the data), you can see a given device like a mouse or a phone is actually split up into a bunch of sub-capabilities exposed by the device, and those can each have their own driver. Same thought process there.

Re:Debian reconsiders init-system diversity by blihp on Tuesday November 12, 2019 @02:26AM (#21512196)
That is pretty much the issue: to some, systemd is too many things.

Realistically, one tends to take or leave an upstream package since picking and choosing pieces of it is far more work than a typical package maintainer takes on. Also, upstream design decision changes can make doing so problematic down the road.

Re:Debian reconsiders init-system diversity by bonzini on Tuesday November 12, 2019 @03:01AM (#21512360)
> picking and choosing pieces of it is far more work than a typical package maintainer takes on.

Not necessarily. RHEL does not ship gummiboot, timesyncd or networkd for example; it uses grub, chrony, NetworkManager. On my raspberry pis running Debian I have systemd as pid 1, one runs ConnMan (it connects to wireless) and the other runs networkd (it connects to Ethernet).

Re:Debian reconsiders init-system diversity by aerique on Tuesday November 12, 2019 @07:20AM (#21513478)
The article mentions that Debian does not have these "embrace, extend" problems yet because they've been using a fairly old version of SystemD, but they are going to run into those issues when they upgrade.
Re:Debian reconsiders init-system diversity by bkor on Tuesday November 12, 2019 @12:29PM (#21515971)
The distribution I use uses a much newer version of systemd. There still isn't any issue not using things mentioned like e.g. networkd and so on.
Re:Debian reconsiders init-system diversity by kick on Tuesday November 12, 2019 @02:22AM (#21512181)
The article literally gives an example of people doing that with elogind (though dbus isn't good, it's just necessary for certain software to work).
Re:Debian reconsiders init-system diversity by nickik on Tuesday November 12, 2019 @06:03AM (#21513191)
> Why hasn't anyone taken apart systemd and reused only the parts they found useful

Everybody does that. Are you using networkd? Every distro makes different choices and user can then further configure what they want to use.

You can already configure systemd as you like, there is no need to 'take it apart'.

Re:Debian reconsiders init-system diversity by michaelmrose on Tuesday November 12, 2019 @02:31AM (#21512220)
Presumably because there being multiple binaries doesn't mean they are actually easily seperable.
Re:Debian reconsiders init-system diversity by geofft on Tuesday November 12, 2019 @03:06AM (#21512392)
Doesn't necessarily imply that in general, sure, but for the specific cases of systemd and timesyncd/gummiboot/nspawn, they are in fact trivially separable. I'm pretty sure that's even the out-of-the-box config of Debian.
Re:Debian reconsiders init-system diversity by hnarn on Tuesday November 12, 2019 @02:37AM (#21512242)
Or maybe because complaining is so much easier than putting in the work.
Re:Debian reconsiders init-system diversity by michaelmrose on Tuesday November 12, 2019 @01:59PM (#21516961)
This is a low effort post inconsistent with reality. You are simply incorrect.
Re:Debian reconsiders init-system diversity by DCKing on Tuesday November 12, 2019 @03:58AM (#21512647)
Well that's why it's modular. Let's examine the biggest systemd cool aid drinkers, Red Hat. Fedora 31 comes with NetworkManager and no systemd-networkd by default. It doesn't come with systemd-boot. You have to manually install systemd-nspawn. All of this is true on RHEL/CentOS too. With systemd being able to do a lot, doesn't mean it actually does a lot in practice - not yet at least.

On Debian, systemd similarily basically only takes care of service and timer management (and cron is still available on all systems). I guess it does NTP too, I don't really spend much time thinking about my NTP client.

Yes, systemd is a brand. But just like you don't have to eat every burger at McDonald's, you can choose what works for you.

Re:Debian reconsiders init-system diversity by freedomben on Tuesday November 12, 2019 @01:33AM (#21511995)
Many of those things are not all or nothing. For example you can use chrony with systemd. RHEL 8 does that by default. You can even install rsyslog to consume logs if you want, and it works just fine.

I agree systemd tries to do a lot (maybe too much) and often isn't better than alternatives, but I don't think that's a big deal since you can still use the alternatives quite easily.

Re:Debian reconsiders init-system diversity by evil-olive on Tuesday November 12, 2019 @01:51AM (#21512061)
Yes, certainly the ability to use other options is still there. But one of the main selling points of systemd (and one that the GP comment was extolling) was the consistency of systemd. And you can't have it both ways - is it great because it's a consistent, cohesive system that provides everything you need for a Linux system, or is it great because it's a modular toolkit that allows you to pick & choose which components to use?

I was an Arch Linux user before, during, and after the systemd transition. I welcomed it initially, because pre-systemd Arch had a lot of "here's how to decide which logging daemon / cron daemon / etc to use" which I always thought was unnecessary. As I said, I think it's a great service manager.

But I've also had to deal with production servers using systemd-timesyncd and pool.ntp.org that would occasionally have system clocks that were off by ~10 minutes. SNTP was deemed "good enough"; SNTP doesn't handle falsetickers well; and under dynamic Docker workloads systemd-timesyncd would decide "network configuration changed, better synchronize the clock" every time a Docker container started or restarted.

If I use systemd as a service manager, why does that also imply I'm making "default" choices for boot loader, (S)NTP service, network manager, and container manager? Each of those has no reason to have any sort of coupling to my service manager.

My biggest quibble with stories like this one is that they keep focusing on the decision of systemd as service manager / init system rather than the umbrella of other jobs that the service manager has no good reason to try to take over.

Re:Debian reconsiders init-system diversity by brmgb on Tuesday November 12, 2019 @10:42AM (#21514927)
> And you can't have it both ways - is it great because it's a consistent, cohesive system that provides everything you need for a Linux system, or is it great because it's a modular toolkit that allows you to pick & choose which components to use?

You absolutely can have it both way. Systemd is great because it offers a set of tools which are consistent, provide a lot of the functionality you want on a workstation in a cohesive way. It doesn't prevent you from choosing not to use one of the components developed under the project umbrella and uses something different instead. Systemd is modular enough for you to do that.

> But I've also had to deal with production servers using systemd-timesyncd and pool.ntp.org that would occasionally have system clocks that were off by ~10 minutes. SNTP was deemed "good enough"

Why are you using timesyncd if you need more than SNTP ? Timesyncd is not shipped by default with the systemd init system. It is not even installed by default on RHEL. Nothing prevents you from using a different NTP client with the systemd init system.

> If I use systemd as a service manager, why does that also imply I'm making "default" choices for boot loader, (S)NTP service, network manager, and container manager?

It does not imply that at all. You absolutely do not have to use the boot loader, timesyncd, networkd and nspawn with systemd. They are not even installed by default on some distributions. They are not coupled to the service manager.

Re:Debian reconsiders init-system diversity by newnewpdro on Tuesday November 12, 2019 @01:45AM (#21512042)
You can't replace journald with rsyslog.

You can use rsyslog in addition to journald, but there's no way to get journald out of the picture - it's intertwined with the service manager.

Re:Debian reconsiders init-system diversity by freedomben on Tuesday November 12, 2019 @01:51AM (#21512062)
Yes, sorry if what I wrote was misleading. You can't replace journald with rsyslog, but the only complaints I hear about journald are that it's binary so you have to use journalctl to read them. By installing rsyslog you basically get the classic log behavior back. So technically under the hood you're still using journald, but you never have to know it.
Re:Debian reconsiders init-system diversity by pferde on Tuesday November 12, 2019 @01:59AM (#21512093)
My main complaint is that journald is unreliable and is losing log entries (or lines, if you will).

I had an automation recipe that would start a bunch of cloud instances, configure them and start certain job via a systemd service unit, and collect logs from this job 24 hours later. Initially, we were pulling these logs via journald as logs for that service unit. But then we noticed that random lines (1-5 lines out of maybe 40 for a single job) would be missing in about half the instances.

We ended up pulling those logs from files in /var/log instead, made courtesy of rsyslog. Not a single missed line.

Again journald is unreliable and as a whole should be nuked from the orbit.

Re:Debian reconsiders init-system diversity by Yizahi on Tuesday November 12, 2019 @07:37AM (#21513557)
I concur. We also saw an issue with journald missing whole hours of logs, randomly, on our embedded platform. Couldn't replace all of them with log files due to SSD degradation (we actually calculated it we were missing target device lifespan, this is not a consumer problem of course). Basically we added log files where we could, plus remote logs and left journald as-is, it can't be replaced and can't be fixed.
Re:Debian reconsiders init-system diversity by newnewpdro on Tuesday November 12, 2019 @02:22AM (#21512183)
Filtering journal contents by metadata is known to be unreliable.

It's not that the logs are missing, it's that they're not getting included by your query.

The way journald associates log lines with process metadata is inherently racy.

This situation has improved some with the metadata caching changes, but IIRC there are still some holes where processes can log without journald associating accurate/up-to-date metadata with the logged info.

Re:Debian reconsiders init-system diversity by pferde on Tuesday November 12, 2019 @03:12AM (#21512424)
That makes sense, I guess, in a rather warped and bizarre way. The point still stands - journald is unreliable, and after getting burnt like this it will be years before I start trusting it again.
Re:Debian reconsiders init-system diversity by newnewpdro on Tuesday November 12, 2019 @12:30PM (#21515988)
FYI, in case you wanted to document your pain, it might help prioritize fixing it fully:

https://github.com/systemd/systemd/issues/2913

Re:Debian reconsiders init-system diversity by dannyw on Tuesday November 12, 2019 @05:27AM (#21513029)
Great, so why don't we just keep text logs as text files?
Re:Debian reconsiders init-system diversity by mateuszf on Tuesday November 12, 2019 @06:08AM (#21513209)
Filtering text files in a structured way is even harder.
Re:Debian reconsiders init-system diversity by pmoriarty on Tuesday November 12, 2019 @10:18AM (#21514726)
Having unstructured text reliably be in log files is far better than having a broken log daemon forced upon you.
Re:Debian reconsiders init-system diversity by eecc on Wednesday November 20, 2019 @03:10AM (#21582017)
Dedicated tools exist for that...
Re:Debian reconsiders init-system diversity by freedomben on Tuesday November 12, 2019 @02:02AM (#21512104)
Interesting, this is the first time I've ever heard this. How long ago did this happen?
Re:Debian reconsiders init-system diversity by pferde on Tuesday November 12, 2019 @02:11AM (#21512131)
Sometimes between August and September, and it was on Suse Linux Enterprise Server 12.

The lines would go missing mostly if the logs were collected two or three days later instead of immediately after the job finished (it was a job running for 24 hours), which leads me to think it had to do with journald expiring entries to save on disk space. A consistent log manager would expire them chronologically, but here the lines were missing from the middle or the end of the output, so not the oldest ones logged.

Re:Debian reconsiders init-system diversity by newnewpdro on Tuesday November 12, 2019 @02:14AM (#21512144)
There are a whole lot more complaints than that for journald.

The most common one (and one I share) is how slow it can be. `systemctl status foo.service` takes a significant amount of time on any of my machines thanks to the journal, and that's just the reader side.

It used to be quite crashy with lots of CPU overhead, but that has improved over time, the metadata caching helped a bunch with the overhead.

There was also a pretty embarrassing CVE not long ago:

https://nvd.nist.gov/vuln/detail/CVE-2018-16865

Re:Debian reconsiders init-system diversity by ibotty on Tuesday November 12, 2019 @01:52AM (#21512066)
You do still _use_ rsyslogd if you enable it. journald is fundamental to some core systemd functionality. Of course you can't get rid of it.
Re:Debian reconsiders init-system diversity by newnewpdro on Tuesday November 12, 2019 @02:42AM (#21512262)
Right, which just turns rsyslogd into another consumer of the journal data analogous to `journalctl --follow --all`. You still have all the overhead (and surface area) of journald being in the loop of everything logged.

Many people when they encounter problems with journald want to continue using systemd for their service management, but revert to the old world of low-overhead metadata-free unstructured syslog O_APPEND text files for everything logged.

If systemd (the project) were truly a collection of modular components you could pick and choose, you wouldn't need journald and you'd be able to run syslog like it's the 90s.

It's not an impossibility, the systemd developers just seem to have zero interest in implementing stuff that enables escaping their overall architecture. I imagine all that's needed is some minimal IPC glue to forward all the stdout/stderr output from services to syslog when journald isn't in use. Systemd's role is to wire that stuff up to journald currently, and it's unnecessarily opinionated about journald being the only supported target in that role.

Re:Debian reconsiders init-system diversity by bonzini on Tuesday November 12, 2019 @03:05AM (#21512382)
> If systemd (the project) were truly a collection of modular components you could pick and choose, you wouldn't need journald and you'd be able to run syslog like it's the 90s.

Journald and udevd are exactly the only piece of systemd that systemd's pid 1 requires, and udevd can be used independent of systemd's pid 1.

I just think of journald as a piece of the init system that is split to a separate process, and provides log data to other programs.

Re:Debian reconsiders init-system diversity by ibotty on Tuesday November 12, 2019 @04:21AM (#21512753)
It also gets back logs from journald! How do you envision `systemctl status $unit` to show the last logs if they are in some random log file?
Re:Debian reconsiders init-system diversity by newnewpdro on Tuesday November 12, 2019 @04:38AM (#21512808)
First of all, no, systemd as in PID1 does not get logs back from journald. The systemctl command is using the sd-journal API to do that directly from the journal files.

Secondly, I don't, I expect the recent logs portion of `systemctl status $unit` to be suppressed when journald isn't present.

Note that journal-caused slowness of that very command is a common complaint aimed at journald contributing to people wanting to remove it!

Re:Debian reconsiders init-system diversity by kungtotte on Tuesday November 12, 2019 @12:15PM (#21515823)
With runit, for example, logs are put in a canonical per-service directory.

E.g. `service_directory/service/logs`

Seems like a trivial way to solve it...

Re:Debian reconsiders init-system diversity by ibotty on Wednesday November 13, 2019 @02:46AM (#21521875)
Yes, of course that's possible. But that's no generic syslog daemon either.
Re:Debian reconsiders init-system diversity by mike_hock on Tuesday November 12, 2019 @02:33AM (#21512223)
> At a certain point "systemd" becomes a brand more than anything else

Bingo, so what's the problem? Except for the timer/cron functionality, everything else you listed is separate software that just comes from the systemd brand.

Re:Debian reconsiders init-system diversity by kresten on Tuesday November 12, 2019 @01:46AM (#21512048)
Yep agreed - solid assessment.

Apart from networking. That’s an f*ing mess without systemd.

Re:Debian reconsiders init-system diversity by isodude on Tuesday November 12, 2019 @02:11AM (#21512130)
Been trying out systemd-networkd for a couple of years now and it is a mess. Especially when you want to do something like ipsec/vpn/vxlan. Also, no possible way to reload a specific interface?
Re:Debian reconsiders init-system diversity by brmgb on Tuesday November 12, 2019 @10:52AM (#21515020)
> Especially when you want to do something like ipsec/vpn/vxlan.

I have a wireguard tunnel setup by networkd with custom rules to only send traffic from a slice through it. It works fine. Take a look at the netdev documentation [1].

What are you trying to do exactly ?

[1] https://www.freedesktop.org/software/systemd/man/systemd.net...

Re:Debian reconsiders init-system diversity by isodude on Thursday November 14, 2019 @01:51PM (#21538172)
The problem is rather how the troubleshooting works.

You don't know how the network will be parsed or which statements that works with your version. Very difficult to debug when it doesn't behave as it should.

After a lot of fiddling with source routing on e.g. Debian Strech I was able to something working. But only half of the times I restarted networkd.

I would like some better tooling to assist with more difficult setups.

Re:Debian reconsiders init-system diversity by pas on Friday November 15, 2019 @03:42PM (#21548553)
Hm, Stretch has an old version, no? Or do you use a backport repo?

But, yes, turning on debug mode is harder than it should be, and it's usually not the right level. (I usually just go for strace first, but with netdev I guess it's using netlink to talk to the kernel, so that'll not help much :/ )

Re:Debian reconsiders init-system diversity by isodude on Saturday November 16, 2019 @02:22AM (#21551482)
Backport, because all the needed statements are not there.

I use strace etc (and debug level in networkd), but then you realise that this should make it easier not tougher. I did learn about ifup -v though which gave me all I needed. But both tools silently ignores flags that is wrong.

I'm writing my own tool now that is more strict in that sense instead.

Sorry about the rant but it's at least three trips to get everything working flawless in systemd-networkd now..

Re:Debian reconsiders init-system diversity by pas on Saturday November 16, 2019 @09:50AM (#21552876)
When it comes to Linux networking I find that tooling is very, very, veery bad, compared to what it should/could be.

Of course it's free and open source, so we can at least try to make it better besides complaining, but that part is harder than it should be (otherwise the whole problem would have been "solved" by now).

Re:Debian reconsiders init-system diversity by isodude on Saturday November 16, 2019 @05:20PM (#21555325)
Totally agree. I find network management bad wherever you go.

Systemd-networkd is fine layout wise, it's just the tooling that could be improved upon. Also here you see the problem with systemd-networkd being shipped together with systemd deb, if it were to be standalone it would be so easy to backport just that.

Re:Debian reconsiders init-system diversity by isodude on Sunday November 17, 2019 @04:28PM (#21560150)
And I just realised that it should not be that hard to control the interface via dbus to networkd.

Coreos even made a complete systemctl dbus integration.

Re:Debian reconsiders init-system diversity by noodlesUK on Tuesday November 12, 2019 @02:18AM (#21512161)
Funnily enough I found it much easier setting up networking in weird configurations using Gentoo... For simple DHCP stuff yeah but iirc you can use NetworkManager without systemd.
Re:Debian reconsiders init-system diversity by justinclift on Tuesday November 12, 2019 @03:49PM (#21518036)
For servers which get set up once and are expected to be left alone from then on, that's not the case.

With anything dynamic though - laptops, VMs - the various solutions can be pretty hit and miss. NetworkManager was terrible for many years, but seems relatively ok these days.

Re:Debian reconsiders init-system diversity by nurettin on Tuesday November 12, 2019 @02:20AM (#21512172)
systemd is a dependency graph solution. If you have to know "when network is available" or "when time is synchronized", your init system has to know about these events and that is why I imagine they coupled network and time services.

Could it have been done any differently? Perhaps. Would it require more moving parts? Definitely.

Re:Debian reconsiders init-system diversity by iforgotpassword on Tuesday November 12, 2019 @08:19AM (#21513814)
Dhclient has a lot of hooks where you could easily stick a script or binary to report back to systemd what the state of the network config is. But that would require systemd folks to spend time and effort on thinking about how to integrate existing software into their ecosystem, so they rather roll their own, which obviously takes much more time in total, but it fits the general NIH attitude of the whole project. Oh and it gives them the opportunity to repeat every mistake ever made regarding writing DHCP/NTP/... clients made during the past thirty years, plus some bonus RCEs.
Re:Debian reconsiders init-system diversity by mateuszf on Tuesday November 12, 2019 @02:02PM (#21516995)
> Dhclient has a lot of hooks where you could easily stick a script or binary to report back to systemd what the state of the network config is.

So you're advocating making systemd even bigger and dependent on more stuff?

Re:Debian reconsiders init-system diversity by iforgotpassword on Wednesday November 13, 2019 @12:42PM (#21527005)
Im advocating using existing stuff instead of reinventing the wheel. Making it work with existing DHCP clients is certainly less code than implementing a whole new one.
Re:Debian reconsiders init-system diversity by nurettin on Thursday November 14, 2019 @07:17AM (#21534795)
Are you familiar with the development process? Like, do they one day go "ok we are gonna build a dns into systemd now, let's open up the RFC for that, print it out and stick the papers on the walls gogogo" or is it like, "let's incorporate vital parts of state of the art into our project" ?
Re:Debian reconsiders init-system diversity by de_watcher on Tuesday November 12, 2019 @02:39AM (#21512248)
Dependency graph is a tiny part of one of the programs.

systemd now is something like all except kernel, DE and applications. It's not clear.

Re:Debian reconsiders init-system diversity by dTal on Tuesday November 12, 2019 @03:51AM (#21512616)
systemd is a distro. I imagine it would have been a heck of a lot less controversial if it had been upfront about that, instead of stealthing into other distros as an 'init system' and then consuming them from the inside like a chestburster from Alien (1979)
Re:Debian reconsiders init-system diversity by cookiecaper on Sunday November 17, 2019 @09:25PM (#21561445)
systemd-networkd uses a ridiculously asinine process for determining something as simple as "network is ready", so I'd hope that isn't actually considered one of its core functions upstream.
Re:Debian reconsiders init-system diversity by MertsA on Tuesday November 12, 2019 @06:49AM (#21513365)
How is the systemd project any different in that respect than the GNU project, or FreeBSD? If you don't want systemd-boot, or systemd-networkd, or literally anything other than core systemd and the journal you don't even have to build it, let alone install and run it.

The only part of systemd other than core init that you have to run is the journal and even then you can configure the journal to just forward to rsyslog and not store any logs even just in tmpfs.

Stuff like systemd-nspawn wasn't even developed to be a container management solution. IIRC the main goal was just to leverage the existing namespacing features in core systemd to allow booting up a minimalistic container in order to make developing systemd easier.

Re:Debian reconsiders init-system diversity by eeZah7Ux on Tuesday November 12, 2019 @06:58AM (#21513396)
> Container management? Another place where systemd-nspawn doesn't strike me as notably better than the alternatives.

That's one thing where it's way better.

Re:Debian reconsiders init-system diversity by Ace17 on Tuesday November 12, 2019 @02:18AM (#21512159)
We haven't seen anything yet. Wait until PulseAudio is merged into System-D.
Re:Debian reconsiders init-system diversity by geofft on Tuesday November 12, 2019 @03:10AM (#21512407)
I've been waiting for almost a decade now. In the meantime I've run systemd in production on thousands of servers (with no audio card) at multiple jobs. How much longer should I wait for horrible things to happen, or can I safely assume that they're not happening?
Re:Debian reconsiders init-system diversity by yc12340 on Tuesday November 12, 2019 @03:51AM (#21512615)
Is remotely exploitable (!) CVE in systemd [1] not horrible enough? Or accidentally bricking computers at hardware level [2]?

1: https://nvd.nist.gov/vuln/detail/CVE-2018-15688

2: https://lwn.net/Articles/674940/

Re:Debian reconsiders init-system diversity by geofft on Tuesday November 12, 2019 @07:33AM (#21513538)
You're moving the goalposts. I was supposed to be horrified at bad things like PulseAudio being merged in, not vague bad things in general. If anything, the fact that none of these servers use networkd nor (until very recently, well after that bug was fixed) UEFI is a sign that in fact systemd isn't a giant glob and I can pick and choose components. So, bring on the PulseAudio merge, if it's anything like networkd I have nothing to fear.
Re:Debian reconsiders init-system diversity by armitron on Tuesday November 12, 2019 @04:43PM (#21518486)
He was very specific.
Re:Debian reconsiders init-system diversity by diffeomorphism on Tuesday November 12, 2019 @04:00AM (#21512660)
That is a vulnerability in networkd, not in the init system.

If you want to count like this you might as well speak of vulnerabilities in GNU.

From the second link you posted:

> None of that completely ended the systemd squawking, but it was clear to most that the real problem lies in the UEFI implementation.

So I am not sure what you hoped to prove here.

Re:Debian reconsiders init-system diversity by rrix2 on Tuesday November 12, 2019 @04:01AM (#21512665)
I had no idea that code vulnerability and bugs was a thing lennart invented, too!
Re:Debian reconsiders init-system diversity by mathw on Tuesday November 12, 2019 @04:12AM (#21512721)
Like no other system software ever had a CVE.