Systemd is a collection of low-level system utilities. Its primary responsibility is managing services and serving as the init process (PID 1, the first userspace process started by the kernel), but it also has other components, like systemd-boot (a boot loader and GRUB alternative), journald (system logging), networkd (network interface management), resolved (DNS resolver), or udevd (manages device files in /dev).
People tend to vilify systemd because it is maintained by Red Hat, a company with many controversies, and a pariah among the more extreme FOSS enthusiasts; and because it’s seen as bad practice to have a single entity be responsible for so many low-level system components.
Note: the -d suffix is not exclusive to systemd things. It simply marks the program as a daemon, a long-running background process that provides some kind of service. For example, sshd (SSH server) or httpd (Apache server on some distros) are not parts of systemd.
To answer your question: not really. As far as I know, the network interface won’t have an IP address unless the computer is turned on. If you use a timer (or any other method for that matter) to power on the computer, it will request an address from DHCP as soon as the interface is brought up (unless it has a static address).
A more practical application would be scheduling long, unattended tasks, like updates or making backups.
Is sshd really not part of systemd? I seem to remember needing to run systemctl restart sshd after making changes to the sshd config file but it’s been a while since I’ve done that.
I also use systemd to automatically start plex, sonarr, radarr, transmission, and maybe a few other things as well and if they need to be restarted I’d use a similar command on Ubuntu. Or I’d run systemctl status plexmediaserver to see if it was running correctly.
I’m not an expert though so maybe I’m doing it wrong or using the wrong terminology.
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.
Yes, it’s not a part of systemd. By running systemctl restart sshd you are just restarting the sshd systemd service. Systemd service files for things like ssh and transmission come with their respective packages.
You can see what I mean here. The openssh-server package for Ubuntu comes with the sshd.service file.
Yes my incorrect assumption was due to the fact that sshd came pre-installed with the OS unlike plex that came with its own service file or Jackett that I had to create the service file manually. Sshd is a program like any other that gets started by systemd. I appreciate the clarification!
Systemd is a collection of low-level system utilities. Its primary responsibility is managing services and serving as the init process (PID 1, the first userspace process started by the kernel), but it also has other components, like
systemd-boot
(a boot loader and GRUB alternative),journald
(system logging),networkd
(network interface management),resolved
(DNS resolver), orudevd
(manages device files in/dev
).People tend to vilify systemd because it is maintained by Red Hat, a company with many controversies, and a pariah among the more extreme FOSS enthusiasts; and because it’s seen as bad practice to have a single entity be responsible for so many low-level system components.
Note: the
-d
suffix is not exclusive to systemd things. It simply marks the program as a daemon, a long-running background process that provides some kind of service. For example,sshd
(SSH server) orhttpd
(Apache server on some distros) are not parts of systemd.To answer your question: not really. As far as I know, the network interface won’t have an IP address unless the computer is turned on. If you use a timer (or any other method for that matter) to power on the computer, it will request an address from DHCP as soon as the interface is brought up (unless it has a static address).
A more practical application would be scheduling long, unattended tasks, like updates or making backups.
The Tragedy of systemd
Man I expected this is be a shit post copypasta based on the star wars tragedy of Darth Plagueis not a 40 minute researched talk.
Welcome to Lemmy! We got comp-sci majors, ADHD worriers, AND hyperfocus autistics. Take a seat anywhere!
I’m just here for the free donuts.
Is sshd really not part of systemd? I seem to remember needing to run systemctl restart sshd after making changes to the sshd config file but it’s been a while since I’ve done that.
I also use systemd to automatically start plex, sonarr, radarr, transmission, and maybe a few other things as well and if they need to be restarted I’d use a similar command on Ubuntu. Or I’d run systemctl status plexmediaserver to see if it was running correctly.
I’m not an expert though so maybe I’m doing it wrong or using the wrong terminology.
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!
Yes, it’s not a part of systemd. By running
systemctl restart sshd
you are just restarting the sshd systemd service. Systemd service files for things like ssh and transmission come with their respective packages.You can see what I mean here. The
openssh-server
package for Ubuntu comes with thesshd.service
file.Yes my incorrect assumption was due to the fact that sshd came pre-installed with the OS unlike plex that came with its own service file or Jackett that I had to create the service file manually. Sshd is a program like any other that gets started by systemd. I appreciate the clarification!