Systemd is an important part of the underlying Linux system. This handy tool essentially manages all running systems and services and runs as root from the kernel underneath everything the user (you) runs, known as Process ID 1 (PID 1). It's useful for starting various parts of the system and is vital to run and maintain date, time, hostname, log various services (or daemons), containers and virtual machines, settings, and more. Think of it like an SSH server waiting for someone to connect. A systemd service runs in the background, and you'll likely not directly interact with it.

That said, you can work some serious magic with systemd to create some truly useful scripts and customize existing services. Here's why I rely on systemd with my own Linux systems.

5 Systemd can be extended

As versatile as it is powerful

Much like other parts of Linux, Systemd can be fully extended with services, timers, mounts, and more. These can all be defined and managed through curated files, and you can do some truly wacky stuff, even replacing cron with integration into other parts of systemd. Systemd is also universal in that it will perform as expected on any hardware running Linux. This is particularly useful when learning the ins and outs of what this feature can do for your OS.

👁 Framework laptop running Arch Linux
5 cool distros that every Linux expert needs to try out

Bored of tinkering with simple Linux distributions? Here are some advanced distros designed to challenge your Linux skills

4 Faster boot times with configured services

It's simply a better way to handle service starts

A great feature with systemd is the ability to start systems in parallel, resulting in shorter boot times. As your OS loads everything on start-up, all your configured services and apps need to load, and systemd can handle even a large number of them firing up. The best part? It only starts services when dependencies are met, which can be helpful when starting things up that rely on other parts to be running first.

3 Systemd is more secure

Isolate processes and keep everything separate

Systemd supports sandboxing, which isolates various functions and services from one another, much like a virtual machine or Docker container. This enhances overall system security since it reduces the risk of one service affecting other parts of the system should it encounter issues or become compromised. Whenever doing something on my home lab or PC, I prefer sandboxed environments over everything else, unless I specifically require something to run on bare metal.

👁 Running VS Code on Ubuntu
6 reasons why Linux is better than ever

Linux has become a lot more user-friendly over the last couple of years

2 Configure services to restart automatically

If problems arise, reboot and hope for the best

What if a service crashes? That's where systemd can come to the rescue. I've had a few times when misconfigured or badly behaving services can crash, resulting in a loss of functionality. Systemd can be configured to automatically restart crashed services, enhancing reliability if it's a simple issue that needs the service to be rebooted to fix everything. Everything is logged using journald, so I know precisely what's doing what and why.

Systemd can also be more efficient by starting services on demand, instead of at boot. This can prove useful when you need a service to start only when a specific device or system socket is accessed. This is handy for server deployments, but it's also good for portable hardware with limited power uptime.

👁 Framework laptop running Arch Linux
6 things I wish I knew about Arch Linux before switching

Arch is my new go-to Linux distro, and here are some things I wish I knew about it sooner.

1 Makes it easier to manage all my services

Keep everything in one place with easier logging

If I want to start, stop, or enable a service through systemd, all I need is the systemctl command, and everything is carried out within a second or two. It's incredibly easy and allows me to quickly see what's configured to load every time my system turns on. And it's not just user-controlled services that are managed through systemctl. System-level services can also be found here, which makes it notably easier to manage everything in one place.

Standardizing as much as possible ensures you have fewer obstacles in the way of learning something new and makes it easier to return to a point at a later date without feeling overwhelmed with remembering how stuff works.

👁 Monitoring multiple servers using Beszel
This free and open-source lightweight server monitor changed how I keep an eye on my home lab

Beszel has become my go-to utility for monitoring the server rigs, SBCs, NAS units, and mini-PCs in my home lab

You already use systemd on Linux

Gnome, KDE, Ubuntu, Linux Mint, Fedora, Arch, all of these systems rely on systemd. Whether it's a desktop environment or a full Linux distro, there's almost a guarantee that your PC will use systemd to some extent. Want to disable Pipewire on any Linux distro? Simply stop the service through systemd. The same command works across all platforms. It's brilliant and makes it much easier to manage everything on multiple devices, especially when you get round to creating your own files.

Being able to create some truly epic configurations through systemd is partly why I love using it on every Linux system I own. I never got into using cron, and now I don't have to with timers and other supported extensions that transform systemd into a powerful addition to my Linux toolset.