Question sent in by Nathan from Quebec.

Q: I just recently installed CentOS 7 Linux and am so confused.  How do I restart services like sshd and crond?

A: Red Hat 7 and CentOS 7 have now moved to systemd as their default system management daemon.  Systemd is different from the old default init system in too many ways to describe here.  But let’s get to the meat of your question.

The new way to control system daemons is with the systemctl command.  If you are used to the old init scripts (e.x. /etc/init.d/sshd) the new syntax can be slightly confusing.  For example, this is how we used to restart SSHD with the old upstart init scripts:

/etc/init.d/sshd restart

or

service sshd restart

In systemd (Fedora 18 or above, RHEL 7, and CentOS 7) we need to use the systemctl command.

To restart a service using systemctl

systemctl restart sshd.service

To start a service using systemctl

systemctl start sshd.service

To stop a service using systemctl

systemctl stop sshd.service

To check the status of a service using systemctl

systemctl status sshd.service

The old /etc/init.d/ scripts are still available for some services for legacy support and backward compatibility.  But you should get into the habit of using the new systemctl command because they can be removed in future updates or releases.

For information on how to make sure your service starts at boot see Start Services on Boot in Red Hat 7 or CentOS 7.

NOTE: You will need to use root or sudo since these commands require elevated privileges.