Note: This is an RHCSA 7 exam objective and an RHCE 7 exam objective.

Presentation

Even though this topic seems very simple, you need to fully understand all its details.

Also, there is a kind of compatibility between the RHEL 6 service command and the RHEL 7 systemctlcommand: service daemon cmd => systemctl cmd daemon

Basic Service Management

To start a network service (here httpd), type:

# systemctl start httpd

Note: In addition, a service can be restarted with the restart option or only reloaded with the reload option.

To stop a network service (here httpd), type:

# systemctl stop httpd

To check if a network service (here httpd) is running, type:

# systemctl is-active httpd
unknown

Note: If the service is running, you get active.

To activate a network service at boot (here httpd), type:

# systemctl enable httpd
ln -s '/usr/lib/systemd/system/httpd.service' '/etc/systemd/system/multi-user.target.wants/httpd.service'

Note1: Use the disable option to inactivate a network service at boot. Note2: Systemd uses a link mechanism to manage this feature.

To check if a network service (here httpd) is enabled at boot, type:

# systemctl is-enabled httpd
disabled

Note: If the service is enabled at boot, you get enabled.

To check the status of a network service (here httpd), type:

# systemctl status httpd
httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled)
   Active: active (running) since Fri 2015-06-19 16:47:18 CEST; 6min ago
 Main PID: 3868 (httpd)
   Status: "Total requests: 0; Current requests/sec: 0; Current traffic:   0 B/sec"
   CGroup: /system.slice/httpd.service
           └─3868 /usr/sbin/httpd -DFOREGROUND
           └─3869 /usr/sbin/httpd -DFOREGROUND
           └─3870 /usr/sbin/httpd -DFOREGROUND
           └─3871 /usr/sbin/httpd -DFOREGROUND
           └─3872 /usr/sbin/httpd -DFOREGROUND
           └─3873 /usr/sbin/httpd -DFOREGROUND

Jun 19 16:47:18 server1.example.com systemd[1]: Starting The Apache HTTP Ser....
Jun 19 16:47:18 server1.example.com systemd[1]: Started The Apache HTTP Server.
Hint: Some lines were ellipsized, use -l to show in full.

Note: There are many information available through this command, learn to use them.

Advanced Service Management

To permanently disable a service (here httpd), type:

# systemctl mask httpd
ln -s '/dev/null' '/etc/systemd/system/httpd.service'

Note1: Masking a service prevents it from starting even if it is socket-activated or dbus-activated. Note2: Use the unmask option to enable the service again.

Additional Resources

Make sure you visit the Systemd page. Sander van Vugt provides an interesting video about Managing services (5min/2016).