Learning Linux: Systemd and You
Most modern Linux systems use
systemd, which aims to consolidate how services are configured and how they behave, regardless of the Linux distribution. You don’t need to know the ins and outs of how the Linux system boots in order to make use of
systemd. While it is helpful to have that knowledge, this article will only cover some basics to get you started.
systemctl command is used for managing services. It’s worth noting that
systemd manages more than services, but that’s outside the scope of this article. A look at
man systemctl will show something similar to:
systemctl may be used to introspect and control the state of the “systemd” system and service manager.
One of its most basic uses is starting or stopping services. Using the Jungle Disk Server Backup service as an example, this can be done via these commands:
systemctl start junglediskserver.service
systemctl stop junglediskserver.service
.service references the service’s unit file. Units are just resources that systemd knows how to manage. Since
systemctl knows what you are referring to by default, you can actually leave off
systemctl start junglediskserver
systemctl stop junglediskserver
You can also use
restart to do both in one command. However, sometimes you make a configuration change and don’t want to stop the service, just reload the configuration. In that case, you can use
reload. Not all services can do this, however, so you can also use
reload-or-restart. This will reload if possible, or restart if it can’t.
You can also enable and disable service units, which are different from starting and stopping services. Enabling a service means that it will start on boot (if the unit’s configuration requirements are met). Starting a service starts it immediately. Disabling simply means it won’t start at boot (even if the unit’s conditions are met). As a result, you can start a disabled service without issue. Here’s an example of enabling a service:
systemctl enable junglediskserver.
With any service, you can also get the status to see if it’s active or not:
systemctl status junglediskserver
This is different than using the
ps command; a service running per
ps is not by default started by systemd, and therefore is not necessarily managed by systemd.
These are just a few, basic examples of how to use
systemd on your Linux system. These basics will certainly come in handy; even if you don’t use it now, at some point you will encounter it if you manage Linux systems. Stay tuned for more Linux tips!