Base Service Commands
This article describes how to manage services by using systemd.
Introduction
Many modern Linux® operating systems available at Rackspace, such as Centos® 7 and later and Ubuntu® 16.04,
adopted systemd as a system manager. So you might want to know the ins and outs of how to use it to manage your applications.
Use systemctl
systemctl
When you use systemd to manage applications, you use the command systemctl
. The following sections
describe several of this command's functions.
Start and stop services
Use the command systemctl start application.service
to start the application and the command systemctl stop application.service
to stop the application. If you don't know if a service is running, you can use the
command systemctl status application.service
to check the status, as shown in the following example:
[root@localhost ~]# systemctl status httpd.service
httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
Active: inactive (dead)
Docs: man:httpd(8)
man:apachectl(8)
[root@localhost ~]# systemctl start httpd.service
[root@localhost ~]# systemctl status httpd.service
httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
Active: active (running) since Sun 2020-05-24 01:30:02 UTC; 1s ago
Docs: man:httpd(8)
man:apachectl(8)
Main PID: 16117 (httpd)
Status: "Processing requests..."
CGroup: /system.slice/httpd.service
├─16117 /usr/sbin/httpd -DFOREGROUND
├─16118 /usr/sbin/httpd -DFOREGROUND
├─16119 /usr/sbin/httpd -DFOREGROUND
├─16120 /usr/sbin/httpd -DFOREGROUND
├─16121 /usr/sbin/httpd -DFOREGROUND
└─16122 /usr/sbin/httpd -DFOREGROUND
May 24 01:30:02 localhost.localdomain systemd[1]: Starting The Apache HTTP Server...
May 24 01:30:02 localhost.localdomain httpd[16117]: AH00558: httpd: Could not reliably determine
the server's fully qualified domain name, using localhost.localdomain. Set the 'ServerName'
directive globally to suppress this message
May 24 01:30:02 localhost.localdomain systemd[1]: Started The Apache HTTP Server.
[root@localhost ~]#
Restart or reload services
Restarting and reloading a service are two separate things with systemd.
When you run the command systemctl restart application.service
, the specified service restarts. If the service is in a stopped state, it starts.
When you run the command systemctl reload application.service
, the configuration of the specified service reloads. For example, if you make any changes to an Apache® virtual host (vhost) and you want those changes to go live without stopping Apache, you reload the service. The new configurations take place without interrupting the service.
Enable and disable services
If you want a specific service to start when the server is booted up, run the command systemctl enable application.service
. If you want to make sure a service does not start when the server boots up, run the command systemctl disable application.service
.
Updated about 1 year ago