What is systemd?Systemd is the System Management Daemon, which provides a standard for controlling the Linux boot process. It is named per the UNIX convention of adding ‘d’ to the end of daemon’s name. Systemd is intended as a drop-in replacement for the very common init start-up scripts for the boot process (which is also referred to as System V or SysV). Though there is some debate regarding the benefits of systemd, the advantages do include: Service Reporting (failed? suspended? error?), Process Monitoring (kills user processes at logout), and Parallel Processes (multiple services are able to start at same time, improving boot times).
What Operating Systems Have Adopted systemd?OS/Distro : Integration CentOS: Yes, by default since CentOS 7 Fedora: Yes, since the release of Fedora 15 RedHat: Yes Debian: Yes, shipped since Debian 7 as a technology preview Arch: Yes Ubuntu: Available Gentoo: Available OpenSUSE: Available Slack: No
What About chkconfig and Other Legacy Commands?With systemd it is still possible to use the chkconfig and service commands to manage services that haven’t moved their management to systemd. However, in some cases you will get warning messages from the commands. On Fedora, RedHat, and CentOS, for example:
chkconfigreturns: Note: This output shows SysV services only and does not include native systemd services. SysV configuration data might be overridden by native systemd configuration. If you want to list systemd services use ‘systemctl list-unit-files’. To see services enabled on particular target use ‘systemctl list-dependencies [target]’. For a primer on the legacy command chkconfig, check-out our tutorial on: chkconfig Command Examples for Red Hat and CentOS
Summary and Key CommandsThe arguments systemctl uses are very similar to the legacy arguments for chkconfig and service. For example, instead of: service sshd start it would be:
systemctl start sshd.serviceOr instead of: chkconfig sshd on it would be:
systemctl enable sshd.serviceView all services that can start using systemctl and their respective statuses:
systemctl list-unit-files --type=service