Systemd, through the systemctl command, only manages the services. The service itself is defined in a unit file, and it can come from any source, even written manually. The unit file is a text file that describes what the service is, what commands or programs should be executed when it starts or stops (for sshd it’s /usr/bin/sshd -D), what other services or conditions are required (e.g. multi-user.target after the OS has entered multi-user mode), and much more.
When a package installs a unit file, it will be installed to a subdirectory in /usr/lib/systemd, typically user or system, and when it is enabled, it will be symlinked to a subdirectory in /etc/systemd.
OpenSSH itself, which provides sshd on most systems, is developed by the OpenBSD team and ported to other OSes by the OpenSSH Portability Team.
That makes a lot of sense. I actually wrote my own unit files for Jackett and to autostart a virtual machine and moved them into multi-user target wants using the enable command. I guess my thought was that by adding the unit file to systemd it made the program part of systemd in a way but now that I think more about it, saying any of these programs are part of systemd doesn’t actually make sense. Just because sshd came pre-installed with Ubuntu doesn’t make it part of systemd any more than plex is part of systemd.
Systemd, through the
systemctl
command, only manages the services. The service itself is defined in a unit file, and it can come from any source, even written manually. The unit file is a text file that describes what the service is, what commands or programs should be executed when it starts or stops (forsshd
it’s/usr/bin/sshd -D
), what other services or conditions are required (e.g.multi-user.target
after the OS has entered multi-user mode), and much more.When a package installs a unit file, it will be installed to a subdirectory in
/usr/lib/systemd
, typicallyuser
orsystem
, and when it is enabled, it will be symlinked to a subdirectory in/etc/systemd
.OpenSSH itself, which provides
sshd
on most systems, is developed by the OpenBSD team and ported to other OSes by the OpenSSH Portability Team.That makes a lot of sense. I actually wrote my own unit files for Jackett and to autostart a virtual machine and moved them into multi-user target wants using the enable command. I guess my thought was that by adding the unit file to systemd it made the program part of systemd in a way but now that I think more about it, saying any of these programs are part of systemd doesn’t actually make sense. Just because sshd came pre-installed with Ubuntu doesn’t make it part of systemd any more than plex is part of systemd.
Thanks for helping me understand!