|
|
|
|
|
by newnewpdro
2324 days ago
|
|
> nspawn is a pretty small wrapper around functionality that already existed. It turns out containers are not really that special compared to services, and most of the plumbing was already there in the service manager anyway. That's more than a little misleading. It's not like nspawn just calls into the service manager to get things done on its behalf via dbus or something like that. If that were the case, rkt would only have worked on systemd hosts, since it used nspawn to setup its containers. While it's true nspawn shares a bunch of code in common with the service manager, being in the same repository, it's a substantial program on its own and can function entirely independent of the service manager. There was a time when nspawn actively required running on a systemd-booted host, but it was completely unnecessary and that check was removed while rkt was being developed. [0] It's not some thin little ergonomic wrapper around existing service manager facilities. [0] https://github.com/systemd/systemd/commit/4f923a1984476de344... |
|
Yes, it literally does? https://github.com/systemd/systemd/blob/master/src/nspawn/ns...
Additionally there is a lot of shared functionality in libsystemd. Take a look at the rest of the code in nspawn and see how little it actually accomplishes.