# The Container Interface
Also consult [Writing Virtual Machine or Container
-Managers](https://www.freedesktop.org/wiki/Software/systemd/writing-vm-managers).
+Managers](https://systemd.io/WRITING_VM_AND_CONTAINER_MANAGERS).
systemd has a number of interfaces for interacting with container managers,
when systemd is used inside of an OS container. If you work on a container
variable's name you may only specify ptys, and not other types of ttys. Also
you need to specify the pty itself, a symlink will not suffice. This is
implemented in
- [systemd-getty-generator(8)](https://www.freedesktop.org/software/systemd/man/systemd-getty-generator.html).
+ [systemd-getty-generator(8)](https://www.freedesktop.org/software/systemd/man/latest/systemd-getty-generator.html).
Note that this variable should not include the pty that `/dev/console` maps
to if it maps to one (see below). Example: if the container receives
`container_ttys=pts/7 pts/8 pts/14` it will spawn three additional login
running the container manager, if this is considered desirable, please parse
the host's `/etc/os-release` and set a `$container_host_<key>=<VALUE>`
environment variable for the ID fields described by the [os-release
- interface](https://www.freedesktop.org/software/systemd/man/os-release.html), eg:
+ interface](https://www.freedesktop.org/software/systemd/man/latest/os-release.html), eg:
`$container_host_id=debian`
`$container_host_build_id=2020-06-15`
`$container_host_variant_id=server`
## Host OS Integration
All virtual machines and containers should be registered with the
-[machined](http://www.freedesktop.org/wiki/Software/systemd/machined) mini
-service that is part of systemd. This provides integration into the core OS at
-various points. For example, tools like ps, cgls, gnome-system-manager use this
-registration information to show machine information for running processes, as
-each of the VM's/container's processes can reliably attributed to a registered
-machine. The various systemd tools (like systemctl, journalctl, loginctl,
-systemd-run, ...) all support a -M switch that operates on machines registered
-with machined. "machinectl" may be used to execute operations on any such
-machine. When a machine is registered via machined its processes will
+[systemd-machined(8)](https://www.freedesktop.org/software/systemd/man/latest/systemd-machined.service.html)
+mini service that is part of systemd. This provides integration into the core
+OS at various points. For example, tools like ps, cgls, gnome-system-manager
+use this registration information to show machine information for running
+processes, as each of the VM's/container's processes can reliably attributed to
+a registered machine. The various systemd tools (like systemctl, journalctl,
+loginctl, systemd-run, ...) all support a -M switch that operates on machines
+registered with machined. "machinectl" may be used to execute operations on any
+such machine. When a machine is registered via machined its processes will
automatically be placed in a systemd scope unit (that is located in the
machines.slice slice) and thus appear in "systemctl" and similar commands. The
scope unit name is based on the machine meta information passed to machined at
registration.
For more details on the APIs provided by machine consult [the bus API interface
-documentation](http://www.freedesktop.org/wiki/Software/systemd/machined).
+documentation](https://www.freedesktop.org/software/systemd/man/latest/org.freedesktop.machine1.html).
## Guest OS Integration
isolated from the host, there are a number of interfaces defined how the
container manager can set up the environment for systemd running inside a
container. These Interfaces are documented in [Container Interface of
-systemd](http://www.freedesktop.org/wiki/Software/systemd/ContainerInterface).
+systemd](https://systemd.io/CONTAINER_INTERFACE).
VM virtualization is more comprehensive and fewer integration APIs are
available. In fact there's only one: a VM manager may initialize the SMBIOS DMI