08-C.8.1: Managing Linux Services - systemctl
- Page ID
- 35220
\( \newcommand{\vecs}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \)
\( \newcommand{\vecd}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash {#1}}} \)
\( \newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\)
( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\)
\( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\)
\( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\)
\( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\)
\( \newcommand{\Span}{\mathrm{span}}\)
\( \newcommand{\id}{\mathrm{id}}\)
\( \newcommand{\Span}{\mathrm{span}}\)
\( \newcommand{\kernel}{\mathrm{null}\,}\)
\( \newcommand{\range}{\mathrm{range}\,}\)
\( \newcommand{\RealPart}{\mathrm{Re}}\)
\( \newcommand{\ImaginaryPart}{\mathrm{Im}}\)
\( \newcommand{\Argument}{\mathrm{Arg}}\)
\( \newcommand{\norm}[1]{\| #1 \|}\)
\( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\)
\( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\AA}{\unicode[.8,0]{x212B}}\)
\( \newcommand{\vectorA}[1]{\vec{#1}} % arrow\)
\( \newcommand{\vectorAt}[1]{\vec{\text{#1}}} % arrow\)
\( \newcommand{\vectorB}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \)
\( \newcommand{\vectorC}[1]{\textbf{#1}} \)
\( \newcommand{\vectorD}[1]{\overrightarrow{#1}} \)
\( \newcommand{\vectorDt}[1]{\overrightarrow{\text{#1}}} \)
\( \newcommand{\vectE}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash{\mathbf {#1}}}} \)
\( \newcommand{\vecs}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \)
\( \newcommand{\vecd}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash {#1}}} \)
\(\newcommand{\avec}{\mathbf a}\) \(\newcommand{\bvec}{\mathbf b}\) \(\newcommand{\cvec}{\mathbf c}\) \(\newcommand{\dvec}{\mathbf d}\) \(\newcommand{\dtil}{\widetilde{\mathbf d}}\) \(\newcommand{\evec}{\mathbf e}\) \(\newcommand{\fvec}{\mathbf f}\) \(\newcommand{\nvec}{\mathbf n}\) \(\newcommand{\pvec}{\mathbf p}\) \(\newcommand{\qvec}{\mathbf q}\) \(\newcommand{\svec}{\mathbf s}\) \(\newcommand{\tvec}{\mathbf t}\) \(\newcommand{\uvec}{\mathbf u}\) \(\newcommand{\vvec}{\mathbf v}\) \(\newcommand{\wvec}{\mathbf w}\) \(\newcommand{\xvec}{\mathbf x}\) \(\newcommand{\yvec}{\mathbf y}\) \(\newcommand{\zvec}{\mathbf z}\) \(\newcommand{\rvec}{\mathbf r}\) \(\newcommand{\mvec}{\mathbf m}\) \(\newcommand{\zerovec}{\mathbf 0}\) \(\newcommand{\onevec}{\mathbf 1}\) \(\newcommand{\real}{\mathbb R}\) \(\newcommand{\twovec}[2]{\left[\begin{array}{r}#1 \\ #2 \end{array}\right]}\) \(\newcommand{\ctwovec}[2]{\left[\begin{array}{c}#1 \\ #2 \end{array}\right]}\) \(\newcommand{\threevec}[3]{\left[\begin{array}{r}#1 \\ #2 \\ #3 \end{array}\right]}\) \(\newcommand{\cthreevec}[3]{\left[\begin{array}{c}#1 \\ #2 \\ #3 \end{array}\right]}\) \(\newcommand{\fourvec}[4]{\left[\begin{array}{r}#1 \\ #2 \\ #3 \\ #4 \end{array}\right]}\) \(\newcommand{\cfourvec}[4]{\left[\begin{array}{c}#1 \\ #2 \\ #3 \\ #4 \end{array}\right]}\) \(\newcommand{\fivevec}[5]{\left[\begin{array}{r}#1 \\ #2 \\ #3 \\ #4 \\ #5 \\ \end{array}\right]}\) \(\newcommand{\cfivevec}[5]{\left[\begin{array}{c}#1 \\ #2 \\ #3 \\ #4 \\ #5 \\ \end{array}\right]}\) \(\newcommand{\mattwo}[4]{\left[\begin{array}{rr}#1 \amp #2 \\ #3 \amp #4 \\ \end{array}\right]}\) \(\newcommand{\laspan}[1]{\text{Span}\{#1\}}\) \(\newcommand{\bcal}{\cal B}\) \(\newcommand{\ccal}{\cal C}\) \(\newcommand{\scal}{\cal S}\) \(\newcommand{\wcal}{\cal W}\) \(\newcommand{\ecal}{\cal E}\) \(\newcommand{\coords}[2]{\left\{#1\right\}_{#2}}\) \(\newcommand{\gray}[1]{\color{gray}{#1}}\) \(\newcommand{\lgray}[1]{\color{lightgray}{#1}}\) \(\newcommand{\rank}{\operatorname{rank}}\) \(\newcommand{\row}{\text{Row}}\) \(\newcommand{\col}{\text{Col}}\) \(\renewcommand{\row}{\text{Row}}\) \(\newcommand{\nul}{\text{Nul}}\) \(\newcommand{\var}{\text{Var}}\) \(\newcommand{\corr}{\text{corr}}\) \(\newcommand{\len}[1]{\left|#1\right|}\) \(\newcommand{\bbar}{\overline{\bvec}}\) \(\newcommand{\bhat}{\widehat{\bvec}}\) \(\newcommand{\bperp}{\bvec^\perp}\) \(\newcommand{\xhat}{\widehat{\xvec}}\) \(\newcommand{\vhat}{\widehat{\vvec}}\) \(\newcommand{\uhat}{\widehat{\uvec}}\) \(\newcommand{\what}{\widehat{\wvec}}\) \(\newcommand{\Sighat}{\widehat{\Sigma}}\) \(\newcommand{\lt}{<}\) \(\newcommand{\gt}{>}\) \(\newcommand{\amp}{&}\) \(\definecolor{fillinmathshade}{gray}{0.9}\)The systemctl Command
systemctl is used to examine and control the state of “systemd” system and service manager.
systemd is system and service manager for Unix like operating systems (most of the distributions, not all). As the system boots up, the first process created, i.e., init process with PID = 1, is systemd system that initiates the userspace services.
Syntax :
systemctl [ OPTIONS ] COMMAND [NAME...]
Command Options:
Option | Meaning |
---|---|
-t, --type= | The argument in this case should be comma-separated list of unit types such as service and socket. |
--state= | This is used to show only specified states, for example --state=failed, will show only failed units. |
-a, --all | Show all units, regardless of their states. |
-r, --recursive | While listing units, show units of local containers also. |
--show-types | Shows types of sockets along with showing sockets. |
--job-mode | This option controls how to deal with already queued jobs in case of queuing a new job. |
--fail | Similar to --job-mode=fail. |
-i, --ignore-inhibitors | When you request system shutdown or sleep state, it ignores inhibitor locks. |
-q, --quite | Suppresses printing of results of various commands and the hints about the truncated lines. |
--no-block | Don't wait synchronously for process to finish. |
--user | Talk to service manager of calling user, instead of system. |
--no-wall | Don't send wall message before power-off, halt or reboot. |
-f, --force | When used with enable, override any conflicting symlinks. |
--message= | When used with halt, poweroff, reboot, kexec, you can display a short message specifying reason of operation. |
-n, --lines | When used with status, controls the number of journal lines to show. |
-H, --host= | Execute operation remotely. |
systemctl has numerous sub-commands to assist in managing the various services. The following example shows the command's syntax, the command, followed by a sub-command (in the example it is stop), and then the service (NetworkManager.service):
systemctl stop NetworkManager.service
OR
systemctl stop NetworkManager
Below are some of the common sub-commands available. See the systemctl man page for more details.
systemctl Sub-commands:
Subcommand | Meaning |
---|---|
systemctl start foobar.service | Used to start a service (not reboot persistent). |
systemctl stop foobar.service | Used to stop a service (not reboot persistent). |
systemctl restart foobar.service | Used to stop and then start a service. |
systemctl reload foobar.service | When supported, reloads the config file without interrupting pending operations. |
systemctl condrestart foobar.service | Restarts if the service is already running. |
systemctl status foobar.service | Tells whether a service is currently running. |
ls /lib/systemd/system/*.service /etc/systemd/system/*.service | Used to list the services that can be started or stopped. |
systemctl enable foobar.service | Turns the service on, for start at next boot, or other trigger. |
systemctl disable foobar.service | Turns the service off for the next reboot, or any other trigger. |
systemctl is-enabled foobar.service | Used to check whether a service is configured to start or not in the current environment. |
Some example output - notice that the command only used "ssh" and not "sshd.service" - this is valid syntax.
pbmac@pbmac-server $ systemctl status sshd
● ssh.service - OpenBSD Secure Shell server
Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enab
Active: active (running) since Wed 2020-08-19 08:11:43 PDT; 1 weeks 1 days ag
Main PID: 1132 (sshd)
Tasks: 1 (limit: 4915)
CGroup: /system.slice/ssh.service
└─1132 /usr/sbin/sshd -D
Adapted from:
"systemctl in Unix" by Mandeep Singh, Geeks for Geeks is licensed under CC BY-SA 4.0