1SYSTEMCTL(1) systemctl SYSTEMCTL(1)
2
3
4
6 systemctl - Control the systemd system and service manager
7
9 systemctl [OPTIONS...] COMMAND [UNIT...]
10
12 systemctl may be used to introspect and control the state of the
13 "systemd" system and service manager. Please refer to systemd(1) for an
14 introduction into the basic concepts and functionality this tool
15 manages.
16
18 The following commands are understood:
19
20 Unit Commands (Introspection and Modification)
21 list-units [PATTERN...]
22 List units that systemd currently has in memory. This includes
23 units that are either referenced directly or through a dependency,
24 units that are pinned by applications programmatically, or units
25 that were active in the past and have failed. By default only units
26 which are active, have pending jobs, or have failed are shown; this
27 can be changed with option --all. If one or more PATTERNs are
28 specified, only units matching one of them are shown. The units
29 that are shown are additionally filtered by --type= and --state= if
30 those options are specified.
31
32 Note that this command does not show unit templates, but only
33 instances of unit templates. Units templates that aren't
34 instantiated are not runnable, and will thus never show up in the
35 output of this command. Specifically this means that foo@.service
36 will never be shown in this list — unless instantiated, e.g. as
37 foo@bar.service. Use list-unit-files (see below) for listing
38 installed unit template files.
39
40 Produces output similar to
41
42 UNIT LOAD ACTIVE SUB DESCRIPTION
43 sys-module-fuse.device loaded active plugged /sys/module/fuse
44 -.mount loaded active mounted Root Mount
45 boot-efi.mount loaded active mounted /boot/efi
46 systemd-journald.service loaded active running Journal Service
47 systemd-logind.service loaded active running Login Service
48 ● user@1000.service loaded failed failed User Manager for UID 1000
49 ...
50 systemd-tmpfiles-clean.timer loaded active waiting Daily Cleanup of Temporary Directories
51
52 LOAD = Reflects whether the unit definition was properly loaded.
53 ACTIVE = The high-level unit activation state, i.e. generalization of SUB.
54 SUB = The low-level unit activation state, values depend on unit type.
55
56 123 loaded units listed. Pass --all to see loaded but inactive units, too.
57 To show all installed unit files use 'systemctl list-unit-files'.
58
59 The header and the last unit of a given type are underlined if the
60 terminal supports that. A colored dot is shown next to services
61 which were masked, not found, or otherwise failed.
62
63 The LOAD column shows the load state, one of loaded, not-found,
64 bad-setting, error, masked. The ACTIVE columns shows the general
65 unit state, one of active, reloading, inactive, failed, activating,
66 deactivating. The SUB column shows the unit-type-specific detailed
67 state of the unit, possible values vary by unit type. The list of
68 possible LOAD, ACTIVE, and SUB states is not constant and new
69 systemd releases may both add and remove values.
70
71 systemctl --state=help
72
73 command maybe be used to display the current set of possible
74 values.
75
76 This is the default command.
77
78 list-automounts [PATTERN...]
79 List automount units currently in memory, ordered by mount path. If
80 one or more PATTERNs are specified, only automount units matching
81 one of them are shown. Produces output similar to
82
83 WHAT WHERE MOUNTED IDLE TIMEOUT UNIT
84 /dev/sdb1 /mnt/test no 120s mnt-test.automount
85 binfmt_misc /proc/sys/fs/binfmt_misc yes 0 proc-sys-fs-binfmt_misc.automount
86
87 2 automounts listed.
88
89 Also see --show-types, --all, and --state=.
90
91 list-sockets [PATTERN...]
92 List socket units currently in memory, ordered by listening
93 address. If one or more PATTERNs are specified, only socket units
94 matching one of them are shown. Produces output similar to
95
96 LISTEN UNIT ACTIVATES
97 /dev/initctl systemd-initctl.socket systemd-initctl.service
98 ...
99 [::]:22 sshd.socket sshd.service
100 kobject-uevent 1 systemd-udevd-kernel.socket systemd-udevd.service
101
102 5 sockets listed.
103
104 Note: because the addresses might contains spaces, this output is
105 not suitable for programmatic consumption.
106
107 Also see --show-types, --all, and --state=.
108
109 list-timers [PATTERN...]
110 List timer units currently in memory, ordered by the time they
111 elapse next. If one or more PATTERNs are specified, only units
112 matching one of them are shown. Produces output similar to
113
114 NEXT LEFT LAST PASSED UNIT ACTIVATES
115 - - Thu 2017-02-23 13:40:29 EST 3 days ago ureadahead-stop.timer ureadahead-stop.service
116 Sun 2017-02-26 18:55:42 EST 1min 14s left Thu 2017-02-23 13:54:44 EST 3 days ago systemd-tmpfiles-clean.timer systemd-tmpfiles-clean.service
117 Sun 2017-02-26 20:37:16 EST 1h 42min left Sun 2017-02-26 11:56:36 EST 6h ago apt-daily.timer apt-daily.service
118 Sun 2017-02-26 20:57:49 EST 2h 3min left Sun 2017-02-26 11:56:36 EST 6h ago snapd.refresh.timer snapd.refresh.service
119
120
121 NEXT shows the next time the timer will run.
122
123 LEFT shows how long till the next time the timer runs.
124
125 LAST shows the last time the timer ran.
126
127 PASSED shows how long has passed since the timer last ran.
128
129 UNIT shows the name of the timer
130
131 ACTIVATES shows the name the service the timer activates when it
132 runs.
133
134 Also see --all and --state=.
135
136 is-active PATTERN...
137 Check whether any of the specified units are active (i.e. running).
138 Returns an exit code 0 if at least one is active, or non-zero
139 otherwise. Unless --quiet is specified, this will also print the
140 current unit state to standard output.
141
142 is-failed PATTERN...
143 Check whether any of the specified units are in a "failed" state.
144 Returns an exit code 0 if at least one has failed, non-zero
145 otherwise. Unless --quiet is specified, this will also print the
146 current unit state to standard output.
147
148 status [PATTERN...|PID...]]
149 Show runtime status information about the whole system or about one
150 or more units followed by most recent log data from the journal. If
151 no positional arguments are specified, and no unit filter is given
152 with --type=, --state=, or --failed, shows the status of the whole
153 system. If combined with --all, follows that with the status of all
154 units. If positional arguments are specified, each positional
155 argument is treated as either a unit name to show, or a glob
156 pattern to show units whose names match that pattern, or a PID to
157 show the unit containing that PID. When --type=, --state=, or
158 --failed are used, units are additionally filtered by the TYPE and
159 ACTIVE state.
160
161 This function is intended to generate human-readable output. If you
162 are looking for computer-parsable output, use show instead. By
163 default, this function only shows 10 lines of output and ellipsizes
164 lines to fit in the terminal window. This can be changed with
165 --lines and --full, see above. In addition, journalctl --unit=NAME
166 or journalctl --user-unit=NAME use a similar filter for messages
167 and might be more convenient.
168
169 Note that this operation only displays runtime status, i.e.
170 information about the current invocation of the unit (if it is
171 running) or the most recent invocation (if it is not running
172 anymore, and has not been released from memory). Information about
173 earlier invocations, invocations from previous system boots, or
174 prior invocations that have already been released from memory may
175 be retrieved via journalctl --unit=.
176
177 systemd implicitly loads units as necessary, so just running the
178 status will attempt to load a file. The command is thus not useful
179 for determining if something was already loaded or not. The units
180 may possibly also be quickly unloaded after the operation is
181 completed if there's no reason to keep it in memory thereafter.
182
183 Example 1. Example output from systemctl status
184
185 $ systemctl status bluetooth
186 ● bluetooth.service - Bluetooth service
187 Loaded: loaded (/usr/lib/systemd/system/bluetooth.service; enabled; preset: enabled)
188 Active: active (running) since Wed 2017-01-04 13:54:04 EST; 1 weeks 0 days ago
189 Docs: man:bluetoothd(8)
190 Main PID: 930 (bluetoothd)
191 Status: "Running"
192 Tasks: 1
193 Memory: 648.0K
194 CPU: 435ms
195 CGroup: /system.slice/bluetooth.service
196 └─930 /usr/lib/bluetooth/bluetoothd
197
198 Jan 12 10:46:45 example.com bluetoothd[8900]: Not enough free handles to register service
199 Jan 12 10:46:45 example.com bluetoothd[8900]: Current Time Service could not be registered
200 Jan 12 10:46:45 example.com bluetoothd[8900]: gatt-time-server: Input/output error (5)
201
202 The dot ("●") uses color on supported terminals to summarize the
203 unit state at a glance. Along with its color, its shape varies
204 according to its state: "inactive" or "maintenance" is a white
205 circle ("○"), "active" is a green dot ("●"), "deactivating" is a
206 white dot, "failed" or "error" is a red cross ("×"), and
207 "reloading" is a green clockwise circle arrow ("↻").
208
209 The "Loaded:" line in the output will show "loaded" if the unit has
210 been loaded into memory. Other possible values for "Loaded:"
211 include: "error" if there was a problem loading it, "not-found" if
212 no unit file was found for this unit, "bad-setting" if an essential
213 unit file setting could not be parsed and "masked" if the unit file
214 has been masked. Along with showing the path to the unit file, this
215 line will also show the enablement state. Enabled units are
216 included in the dependency network between units, and thus are
217 started at boot or via some other form of activation. See the full
218 table of possible enablement states — including the definition of
219 "masked" — in the documentation for the is-enabled command.
220
221 The "Active:" line shows active state. The value is usually
222 "active" or "inactive". Active could mean started, bound, plugged
223 in, etc depending on the unit type. The unit could also be in
224 process of changing states, reporting a state of "activating" or
225 "deactivating". A special "failed" state is entered when the
226 service failed in some way, such as a crash, exiting with an error
227 code or timing out. If the failed state is entered the cause will
228 be logged for later reference.
229
230 show [PATTERN...|JOB...]
231 Show properties of one or more units, jobs, or the manager itself.
232 If no argument is specified, properties of the manager will be
233 shown. If a unit name is specified, properties of the unit are
234 shown, and if a job ID is specified, properties of the job are
235 shown. By default, empty properties are suppressed. Use --all to
236 show those too. To select specific properties to show, use
237 --property=. This command is intended to be used whenever
238 computer-parsable output is required. Use status if you are looking
239 for formatted human-readable output.
240
241 Many properties shown by systemctl show map directly to
242 configuration settings of the system and service manager and its
243 unit files. Note that the properties shown by the command are
244 generally more low-level, normalized versions of the original
245 configuration settings and expose runtime state in addition to
246 configuration. For example, properties shown for service units
247 include the service's current main process identifier as "MainPID"
248 (which is runtime state), and time settings are always exposed as
249 properties ending in the "...USec" suffix even if a matching
250 configuration options end in "...Sec", because microseconds is the
251 normalized time unit used internally by the system and service
252 manager.
253
254 For details about many of these properties, see the documentation
255 of the D-Bus interface backing these properties, see
256 org.freedesktop.systemd1(5).
257
258 cat PATTERN...
259 Show backing files of one or more units. Prints the "fragment" and
260 "drop-ins" (source files) of units. Each file is preceded by a
261 comment which includes the file name. Note that this shows the
262 contents of the backing files on disk, which may not match the
263 system manager's understanding of these units if any unit files
264 were updated on disk and the daemon-reload command wasn't issued
265 since.
266
267 help PATTERN...|PID...
268 Show manual pages for one or more units, if available. If a PID is
269 given, the manual pages for the unit the process belongs to are
270 shown.
271
272 list-dependencies [UNIT...]
273 Shows units required and wanted by the specified units. This
274 recursively lists units following the Requires=, Requisite=,
275 ConsistsOf=, Wants=, BindsTo= dependencies. If no units are
276 specified, default.target is implied.
277
278 The units that are shown are additionally filtered by --type= and
279 --state= if those options are specified. Note that we won't be able
280 to use a tree structure in this case, so --plain is implied.
281
282 By default, only target units are recursively expanded. When --all
283 is passed, all other units are recursively expanded as well.
284
285 Options --reverse, --after, --before may be used to change what
286 types of dependencies are shown.
287
288 Note that this command only lists units currently loaded into
289 memory by the service manager. In particular, this command is not
290 suitable to get a comprehensive list at all reverse dependencies on
291 a specific unit, as it won't list the dependencies declared by
292 units currently not loaded.
293
294 start PATTERN...
295 Start (activate) one or more units specified on the command line.
296
297 Note that unit glob patterns expand to names of units currently in
298 memory. Units which are not active and are not in a failed state
299 usually are not in memory, and will not be matched by any pattern.
300 In addition, in case of instantiated units, systemd is often
301 unaware of the instance name until the instance has been started.
302 Therefore, using glob patterns with start has limited usefulness.
303 Also, secondary alias names of units are not considered.
304
305 Option --all may be used to also operate on inactive units which
306 are referenced by other loaded units. Note that this is not the
307 same as operating on "all" possible units, because as the previous
308 paragraph describes, such a list is ill-defined. Nevertheless,
309 systemctl start --all GLOB may be useful if all the units that
310 should match the pattern are pulled in by some target which is
311 known to be loaded.
312
313 stop PATTERN...
314 Stop (deactivate) one or more units specified on the command line.
315
316 This command will fail if the unit does not exist or if stopping of
317 the unit is prohibited (see RefuseManualStop= in systemd.unit(5)).
318 It will not fail if any of the commands configured to stop the unit
319 (ExecStop=, etc.) fail, because the manager will still forcibly
320 terminate the unit.
321
322 reload PATTERN...
323 Asks all units listed on the command line to reload their
324 configuration. Note that this will reload the service-specific
325 configuration, not the unit configuration file of systemd. If you
326 want systemd to reload the configuration file of a unit, use the
327 daemon-reload command. In other words: for the example case of
328 Apache, this will reload Apache's httpd.conf in the web server, not
329 the apache.service systemd unit file.
330
331 This command should not be confused with the daemon-reload command.
332
333 restart PATTERN...
334 Stop and then start one or more units specified on the command
335 line. If the units are not running yet, they will be started.
336
337 Note that restarting a unit with this command does not necessarily
338 flush out all of the unit's resources before it is started again.
339 For example, the per-service file descriptor storage facility (see
340 FileDescriptorStoreMax= in systemd.service(5)) will remain intact
341 as long as the unit has a job pending, and is only cleared when the
342 unit is fully stopped and no jobs are pending anymore. If it is
343 intended that the file descriptor store is flushed out, too, during
344 a restart operation an explicit systemctl stop command followed by
345 systemctl start should be issued.
346
347 try-restart PATTERN...
348 Stop and then start one or more units specified on the command line
349 if the units are running. This does nothing if units are not
350 running.
351
352 reload-or-restart PATTERN...
353 Reload one or more units if they support it. If not, stop and then
354 start them instead. If the units are not running yet, they will be
355 started.
356
357 try-reload-or-restart PATTERN...
358 Reload one or more units if they support it. If not, stop and then
359 start them instead. This does nothing if the units are not running.
360
361 isolate UNIT
362 Start the unit specified on the command line and its dependencies
363 and stop all others, unless they have IgnoreOnIsolate=yes (see
364 systemd.unit(5)). If a unit name with no extension is given, an
365 extension of ".target" will be assumed.
366
367 This command is dangerous, since it will immediately stop processes
368 that are not enabled in the new target, possibly including the
369 graphical environment or terminal you are currently using.
370
371 Note that this operation is allowed only on units where
372 AllowIsolate= is enabled. See systemd.unit(5) for details.
373
374 kill PATTERN...
375 Send a signal to one or more processes of the unit. Use
376 --kill-whom= to select which process to kill. Use --signal= to
377 select the signal to send.
378
379 clean PATTERN...
380 Remove the configuration, state, cache, logs or runtime data of the
381 specified units. Use --what= to select which kind of resource to
382 remove. For service units this may be used to remove the
383 directories configured with ConfigurationDirectory=,
384 StateDirectory=, CacheDirectory=, LogsDirectory= and
385 RuntimeDirectory=, see systemd.exec(5) for details. For timer units
386 this may be used to clear out the persistent timestamp data if
387 Persistent= is used and --what=state is selected, see
388 systemd.timer(5). This command only applies to units that use
389 either of these settings. If --what= is not specified, both the
390 cache and runtime data are removed (as these two types of data are
391 generally redundant and reproducible on the next invocation of the
392 unit).
393
394 freeze PATTERN...
395 Freeze one or more units specified on the command line using cgroup
396 freezer
397
398 Freezing the unit will cause all processes contained within the
399 cgroup corresponding to the unit to be suspended. Being suspended
400 means that unit's processes won't be scheduled to run on CPU until
401 thawed. Note that this command is supported only on systems that
402 use unified cgroup hierarchy. Unit is automatically thawed just
403 before we execute a job against the unit, e.g. before the unit is
404 stopped.
405
406 thaw PATTERN...
407 Thaw (unfreeze) one or more units specified on the command line.
408
409 This is the inverse operation to the freeze command and resumes the
410 execution of processes in the unit's cgroup.
411
412 set-property UNIT PROPERTY=VALUE...
413 Set the specified unit properties at runtime where this is
414 supported. This allows changing configuration parameter properties
415 such as resource control settings at runtime. Not all properties
416 may be changed at runtime, but many resource control settings
417 (primarily those in systemd.resource-control(5)) may. The changes
418 are applied immediately, and stored on disk for future boots,
419 unless --runtime is passed, in which case the settings only apply
420 until the next reboot. The syntax of the property assignment
421 follows closely the syntax of assignments in unit files.
422
423 Example: systemctl set-property foobar.service CPUWeight=200
424
425 If the specified unit appears to be inactive, the changes will be
426 only stored on disk as described previously hence they will be
427 effective when the unit will be started.
428
429 Note that this command allows changing multiple properties at the
430 same time, which is preferable over setting them individually.
431
432 Example: systemctl set-property foobar.service CPUWeight=200
433 MemoryMax=2G IPAccounting=yes
434
435 Like with unit file configuration settings, assigning an empty
436 setting usually resets a property to its defaults.
437
438 Example: systemctl set-property avahi-daemon.service IPAddressDeny=
439
440 bind UNIT PATH [PATH]
441 Bind-mounts a file or directory from the host into the specified
442 unit's mount namespace. The first path argument is the source file
443 or directory on the host, the second path argument is the
444 destination file or directory in the unit's mount namespace. When
445 the latter is omitted, the destination path in the unit's mount
446 namespace is the same as the source path on the host. When combined
447 with the --read-only switch, a ready-only bind mount is created.
448 When combined with the --mkdir switch, the destination path is
449 first created before the mount is applied.
450
451 Note that this option is currently only supported for units that
452 run within a mount namespace (e.g.: with RootImage=,
453 PrivateMounts=, etc.). This command supports bind-mounting
454 directories, regular files, device nodes, AF_UNIX socket nodes, as
455 well as FIFOs. The bind mount is ephemeral, and it is undone as
456 soon as the current unit process exists. Note that the namespace
457 mentioned here, where the bind mount will be added to, is the one
458 where the main service process runs. Other processes (those
459 exececuted by ExecReload=, ExecStartPre=, etc.) run in distinct
460 namespaces.
461
462 mount-image UNIT IMAGE [PATH [PARTITION_NAME:MOUNT_OPTIONS]]
463 Mounts an image from the host into the specified unit's mount
464 namespace. The first path argument is the source image on the host,
465 the second path argument is the destination directory in the unit's
466 mount namespace (i.e. inside RootImage=/RootDirectory=). The
467 following argument, if any, is interpreted as a colon-separated
468 tuple of partition name and comma-separated list of mount options
469 for that partition. The format is the same as the service
470 MountImages= setting. When combined with the --read-only switch, a
471 ready-only mount is created. When combined with the --mkdir switch,
472 the destination path is first created before the mount is applied.
473
474 Note that this option is currently only supported for units that
475 run within a mount namespace (i.e. with RootImage=, PrivateMounts=,
476 etc.). Note that the namespace mentioned here where the image mount
477 will be added to, is the one where the main service process runs.
478 Note that the namespace mentioned here, where the bind mount will
479 be added to, is the one where the main service process runs. Other
480 processes (those exececuted by ExecReload=, ExecStartPre=, etc.)
481 run in distinct namespaces.
482
483 Example:
484
485 systemctl mount-image foo.service /tmp/img.raw /var/lib/image root:ro,nosuid
486
487
488
489 systemctl mount-image --mkdir bar.service /tmp/img.raw /var/lib/baz/img
490
491
492 service-log-level SERVICE [LEVEL]
493 If the LEVEL argument is not given, print the current log level as
494 reported by service SERVICE.
495
496 If the optional argument LEVEL is provided, then change the current
497 log level of the service to LEVEL. The log level should be a
498 typical syslog log level, i.e. a value in the range 0...7 or one of
499 the strings emerg, alert, crit, err, warning, notice, info, debug;
500 see syslog(3) for details.
501
502 The service must have the appropriate BusName=destination property
503 and also implement the generic org.freedesktop.LogControl1(5)
504 interface. (systemctl will use the generic D-Bus protocol to access
505 the org.freedesktop.LogControl1.LogLevel interface for the D-Bus
506 name destination.)
507
508 service-log-target SERVICE [TARGET]
509 If the TARGET argument is not given, print the current log target
510 as reported by service SERVICE.
511
512 If the optional argument TARGET is provided, then change the
513 current log target of the service to TARGET. The log target should
514 be one of the strings console (for log output to the service's
515 standard error stream), kmsg (for log output to the kernel log
516 buffer), journal (for log output to systemd-journald.service(8)
517 using the native journal protocol), syslog (for log output to the
518 classic syslog socket /dev/log), null (for no log output
519 whatsoever) or auto (for an automatically determined choice,
520 typically equivalent to console if the service is invoked
521 interactively, and journal or syslog otherwise).
522
523 For most services, only a small subset of log targets make sense.
524 In particular, most "normal" services should only implement
525 console, journal, and null. Anything else is only appropriate for
526 low-level services that are active in very early boot before proper
527 logging is established.
528
529 The service must have the appropriate BusName=destination property
530 and also implement the generic org.freedesktop.LogControl1(5)
531 interface. (systemctl will use the generic D-Bus protocol to access
532 the org.freedesktop.LogControl1.LogLevel interface for the D-Bus
533 name destination.)
534
535 reset-failed [PATTERN...]
536 Reset the "failed" state of the specified units, or if no unit name
537 is passed, reset the state of all units. When a unit fails in some
538 way (i.e. process exiting with non-zero error code, terminating
539 abnormally or timing out), it will automatically enter the "failed"
540 state and its exit code and status is recorded for introspection by
541 the administrator until the service is stopped/re-started or reset
542 with this command.
543
544 In addition to resetting the "failed" state of a unit it also
545 resets various other per-unit properties: the start rate limit
546 counter of all unit types is reset to zero, as is the restart
547 counter of service units. Thus, if a unit's start limit (as
548 configured with StartLimitIntervalSec=/StartLimitBurst=) is hit and
549 the unit refuses to be started again, use this command to make it
550 startable again.
551
552 Unit File Commands
553 list-unit-files [PATTERN...]
554 List unit files installed on the system, in combination with their
555 enablement state (as reported by is-enabled). If one or more
556 PATTERNs are specified, only unit files whose name matches one of
557 them are shown (patterns matching unit file system paths are not
558 supported).
559
560 Unlike list-units this command will list template units in addition
561 to explicitly instantiated units.
562
563 enable UNIT..., enable PATH...
564 Enable one or more units or unit instances. This will create a set
565 of symlinks, as encoded in the [Install] sections of the indicated
566 unit files. After the symlinks have been created, the system
567 manager configuration is reloaded (in a way equivalent to
568 daemon-reload), in order to ensure the changes are taken into
569 account immediately. Note that this does not have the effect of
570 also starting any of the units being enabled. If this is desired,
571 combine this command with the --now switch, or invoke start with
572 appropriate arguments later. Note that in case of unit instance
573 enablement (i.e. enablement of units of the form foo@bar.service),
574 symlinks named the same as instances are created in the unit
575 configuration directory, however they point to the single template
576 unit file they are instantiated from.
577
578 This command expects either valid unit names (in which case various
579 unit file directories are automatically searched for unit files
580 with appropriate names), or absolute paths to unit files (in which
581 case these files are read directly). If a specified unit file is
582 located outside of the usual unit file directories, an additional
583 symlink is created, linking it into the unit configuration path,
584 thus ensuring it is found when requested by commands such as start.
585 The file system where the linked unit files are located must be
586 accessible when systemd is started (e.g. anything underneath /home/
587 or /var/ is not allowed, unless those directories are located on
588 the root file system).
589
590 This command will print the file system operations executed. This
591 output may be suppressed by passing --quiet.
592
593 Note that this operation creates only the symlinks suggested in the
594 [Install] section of the unit files. While this command is the
595 recommended way to manipulate the unit configuration directory, the
596 administrator is free to make additional changes manually by
597 placing or removing symlinks below this directory. This is
598 particularly useful to create configurations that deviate from the
599 suggested default installation. In this case, the administrator
600 must make sure to invoke daemon-reload manually as necessary, in
601 order to ensure the changes are taken into account.
602
603 When using this operation on units without install information, a
604 warning about it is shown. --no-warn can be used to suppress the
605 warning.
606
607 Enabling units should not be confused with starting (activating)
608 units, as done by the start command. Enabling and starting units is
609 orthogonal: units may be enabled without being started and started
610 without being enabled. Enabling simply hooks the unit into various
611 suggested places (for example, so that the unit is automatically
612 started on boot or when a particular kind of hardware is plugged
613 in). Starting actually spawns the daemon process (in case of
614 service units), or binds the socket (in case of socket units), and
615 so on.
616
617 Depending on whether --system, --user, --runtime, or --global is
618 specified, this enables the unit for the system, for the calling
619 user only, for only this boot of the system, or for all future
620 logins of all users. Note that in the last case, no systemd daemon
621 configuration is reloaded.
622
623 Using enable on masked units is not supported and results in an
624 error.
625
626 disable UNIT...
627 Disables one or more units. This removes all symlinks to the unit
628 files backing the specified units from the unit configuration
629 directory, and hence undoes any changes made by enable or link.
630 Note that this removes all symlinks to matching unit files,
631 including manually created symlinks, and not just those actually
632 created by enable or link. Note that while disable undoes the
633 effect of enable, the two commands are otherwise not symmetric, as
634 disable may remove more symlinks than a prior enable invocation of
635 the same unit created.
636
637 This command expects valid unit names only, it does not accept
638 paths to unit files.
639
640 In addition to the units specified as arguments, all units are
641 disabled that are listed in the Also= setting contained in the
642 [Install] section of any of the unit files being operated on.
643
644 This command implicitly reloads the system manager configuration
645 after completing the operation. Note that this command does not
646 implicitly stop the units that are being disabled. If this is
647 desired, either combine this command with the --now switch, or
648 invoke the stop command with appropriate arguments later.
649
650 This command will print information about the file system
651 operations (symlink removals) executed. This output may be
652 suppressed by passing --quiet.
653
654 This command honors --system, --user, --runtime, --global and
655 --no-warn in a similar way as enable.
656
657 reenable UNIT...
658 Reenable one or more units, as specified on the command line. This
659 is a combination of disable and enable and is useful to reset the
660 symlinks a unit file is enabled with to the defaults configured in
661 its [Install] section. This command expects a unit name only, it
662 does not accept paths to unit files.
663
664 preset UNIT...
665 Reset the enable/disable status one or more unit files, as
666 specified on the command line, to the defaults configured in the
667 preset policy files. This has the same effect as disable or enable,
668 depending how the unit is listed in the preset files.
669
670 Use --preset-mode= to control whether units shall be enabled and
671 disabled, or only enabled, or only disabled.
672
673 If the unit carries no install information, it will be silently
674 ignored by this command. UNIT must be the real unit name, any
675 alias names are ignored silently.
676
677 For more information on the preset policy format, see
678 systemd.preset(5).
679
680 preset-all
681 Resets all installed unit files to the defaults configured in the
682 preset policy file (see above).
683
684 Use --preset-mode= to control whether units shall be enabled and
685 disabled, or only enabled, or only disabled.
686
687 is-enabled UNIT...
688 Checks whether any of the specified unit files are enabled (as with
689 enable). Returns an exit code of 0 if at least one is enabled,
690 non-zero otherwise. Prints the current enable status (see table).
691 To suppress this output, use --quiet. To show installation targets,
692 use --full.
693
694 Table 1. is-enabled output
695 ┌──────────────────┬─────────────────────────┬───────────┐
696 │Name │ Description │ Exit Code │
697 ├──────────────────┼─────────────────────────┼───────────┤
698 │"enabled" │ Enabled via │ │
699 ├──────────────────┤ .wants/, .requires/ │ │
700 │"enabled-runtime" │ or Alias= symlinks │ │
701 │ │ (permanently in │ 0 │
702 │ │ /etc/systemd/system/, │ │
703 │ │ or transiently in │ │
704 │ │ /run/systemd/system/). │ │
705 ├──────────────────┼─────────────────────────┼───────────┤
706 │"linked" │ Made available through │ │
707 ├──────────────────┤ one or more symlinks │ │
708 │"linked-runtime" │ to the unit file │ │
709 │ │ (permanently in │ │
710 │ │ /etc/systemd/system/ │ │
711 │ │ or transiently in │ > 0 │
712 │ │ /run/systemd/system/), │ │
713 │ │ even though the unit │ │
714 │ │ file might reside │ │
715 │ │ outside of the unit │ │
716 │ │ file search path. │ │
717 ├──────────────────┼─────────────────────────┼───────────┤
718 │"alias" │ The name is an alias │ 0 │
719 │ │ (symlink to another │ │
720 │ │ unit file). │ │
721 ├──────────────────┼─────────────────────────┼───────────┤
722 │"masked" │ Completely disabled, │ │
723 ├──────────────────┤ so that any start │ │
724 │"masked-runtime" │ operation on it fails │ │
725 │ │ (permanently in │ > 0 │
726 │ │ /etc/systemd/system/ │ │
727 │ │ or transiently in │ │
728 │ │ /run/systemd/systemd/). │ │
729 ├──────────────────┼─────────────────────────┼───────────┤
730 │"static" │ The unit file is not │ 0 │
731 │ │ enabled, and has no │ │
732 │ │ provisions for enabling │ │
733 │ │ in the [Install] unit │ │
734 │ │ file section. │ │
735 ├──────────────────┼─────────────────────────┼───────────┤
736 │"indirect" │ The unit file itself is │ 0 │
737 │ │ not enabled, but it has │ │
738 │ │ a non-empty Also= │ │
739 │ │ setting in the │ │
740 │ │ [Install] unit file │ │
741 │ │ section, listing other │ │
742 │ │ unit files that might │ │
743 │ │ be enabled, or it has │ │
744 │ │ an alias under a │ │
745 │ │ different name through │ │
746 │ │ a symlink that is not │ │
747 │ │ specified in Also=. For │ │
748 │ │ template unit files, an │ │
749 │ │ instance different than │ │
750 │ │ the one specified in │ │
751 │ │ DefaultInstance= is │ │
752 │ │ enabled. │ │
753 ├──────────────────┼─────────────────────────┼───────────┤
754 │"disabled" │ The unit file is not │ > 0 │
755 │ │ enabled, but contains │ │
756 │ │ an [Install] section │ │
757 │ │ with installation │ │
758 │ │ instructions. │ │
759 ├──────────────────┼─────────────────────────┼───────────┤
760 │"generated" │ The unit file was │ 0 │
761 │ │ generated dynamically │ │
762 │ │ via a generator tool. │ │
763 │ │ See │ │
764 │ │ systemd.generator(7). │ │
765 │ │ Generated unit files │ │
766 │ │ may not be enabled, │ │
767 │ │ they are enabled │ │
768 │ │ implicitly by their │ │
769 │ │ generator. │ │
770 ├──────────────────┼─────────────────────────┼───────────┤
771 │"transient" │ The unit file has been │ 0 │
772 │ │ created dynamically │ │
773 │ │ with the runtime API. │ │
774 │ │ Transient units may not │ │
775 │ │ be enabled. │ │
776 ├──────────────────┼─────────────────────────┼───────────┤
777 │"bad" │ The unit file is │ > 0 │
778 │ │ invalid or another │ │
779 │ │ error occurred. Note │ │
780 │ │ that is-enabled will │ │
781 │ │ not actually return │ │
782 │ │ this state, but print │ │
783 │ │ an error message │ │
784 │ │ instead. However the │ │
785 │ │ unit file listing │ │
786 │ │ printed by │ │
787 │ │ list-unit-files might │ │
788 │ │ show it. │ │
789 ├──────────────────┼─────────────────────────┼───────────┤
790 │"not-found" │ The unit file doesn't │ 4 │
791 │ │ exist. │ │
792 └──────────────────┴─────────────────────────┴───────────┘
793
794 mask UNIT...
795 Mask one or more units, as specified on the command line. This will
796 link these unit files to /dev/null, making it impossible to start
797 them. This is a stronger version of disable, since it prohibits all
798 kinds of activation of the unit, including enablement and manual
799 activation. Use this option with care. This honors the --runtime
800 option to only mask temporarily until the next reboot of the
801 system. The --now option may be used to ensure that the units are
802 also stopped. This command expects valid unit names only, it does
803 not accept unit file paths.
804
805 Note that this will create a symlink under the unit's name in
806 /etc/systemd/system/ (in case --runtime is not specified) or
807 /run/systemd/system/ (in case --runtime is specified). If a
808 matching unit file already exists under these directories this
809 operation will hence fail. This means that the operation is
810 primarily useful to mask units shipped by the vendor (as those are
811 shipped in /usr/lib/systemd/system/ and not the aforementioned two
812 directories), but typically doesn't work for units created locally
813 (as those are typically placed precisely in the two aforementioned
814 directories). Similar restrictions apply for --user mode, in which
815 case the directories are below the user's home directory however.
816
817 unmask UNIT...
818 Unmask one or more unit files, as specified on the command line.
819 This will undo the effect of mask. This command expects valid unit
820 names only, it does not accept unit file paths.
821
822 link PATH...
823 Link a unit file that is not in the unit file search path into the
824 unit file search path. This command expects an absolute path to a
825 unit file. The effect of this may be undone with disable. The
826 effect of this command is that a unit file is made available for
827 commands such as start, even though it is not installed directly in
828 the unit search path. The file system where the linked unit files
829 are located must be accessible when systemd is started (e.g.
830 anything underneath /home/ or /var/ is not allowed, unless those
831 directories are located on the root file system).
832
833 revert UNIT...
834 Revert one or more unit files to their vendor versions. This
835 command removes drop-in configuration files that modify the
836 specified units, as well as any user-configured unit file that
837 overrides a matching vendor supplied unit file. Specifically, for a
838 unit "foo.service" the matching directories "foo.service.d/" with
839 all their contained files are removed, both below the persistent
840 and runtime configuration directories (i.e. below
841 /etc/systemd/system and /run/systemd/system); if the unit file has
842 a vendor-supplied version (i.e. a unit file located below /usr/)
843 any matching persistent or runtime unit file that overrides it is
844 removed, too. Note that if a unit file has no vendor-supplied
845 version (i.e. is only defined below /etc/systemd/system or
846 /run/systemd/system, but not in a unit file stored below /usr/),
847 then it is not removed. Also, if a unit is masked, it is unmasked.
848
849 Effectively, this command may be used to undo all changes made with
850 systemctl edit, systemctl set-property and systemctl mask and puts
851 the original unit file with its settings back in effect.
852
853 add-wants TARGET UNIT..., add-requires TARGET UNIT...
854 Adds "Wants=" or "Requires=" dependencies, respectively, to the
855 specified TARGET for one or more units.
856
857 This command honors --system, --user, --runtime and --global in a
858 way similar to enable.
859
860 edit UNIT...
861 Edit a drop-in snippet or a whole replacement file if --full is
862 specified, to extend or override the specified unit.
863
864 Depending on whether --system (the default), --user, or --global is
865 specified, this command creates a drop-in file for each unit either
866 for the system, for the calling user, or for all futures logins of
867 all users. Then, the editor (see the "Environment" section below)
868 is invoked on temporary files which will be written to the real
869 location if the editor exits successfully.
870
871 If --drop-in= is specified, the given drop-in file name will be
872 used instead of the default override.conf.
873
874 If --full is specified, this will copy the original units instead
875 of creating drop-in files.
876
877 If --force is specified and any units do not already exist, new
878 unit files will be opened for editing.
879
880 If --runtime is specified, the changes will be made temporarily in
881 /run/ and they will be lost on the next reboot.
882
883 If the temporary file is empty upon exit, the modification of the
884 related unit is canceled.
885
886 After the units have been edited, systemd configuration is reloaded
887 (in a way that is equivalent to daemon-reload).
888
889 Note that this command cannot be used to remotely edit units and
890 that you cannot temporarily edit units which are in /etc/, since
891 they take precedence over /run/.
892
893 get-default
894 Return the default target to boot into. This returns the target
895 unit name default.target is aliased (symlinked) to.
896
897 set-default TARGET
898 Set the default target to boot into. This sets (symlinks) the
899 default.target alias to the given target unit.
900
901 Machine Commands
902 list-machines [PATTERN...]
903 List the host and all running local containers with their state. If
904 one or more PATTERNs are specified, only containers matching one of
905 them are shown.
906
907 Job Commands
908 list-jobs [PATTERN...]
909 List jobs that are in progress. If one or more PATTERNs are
910 specified, only jobs for units matching one of them are shown.
911
912 When combined with --after or --before the list is augmented with
913 information on which other job each job is waiting for, and which
914 other jobs are waiting for it, see above.
915
916 cancel [JOB...]
917 Cancel one or more jobs specified on the command line by their
918 numeric job IDs. If no job ID is specified, cancel all pending
919 jobs.
920
921 Environment Commands
922 systemd supports an environment block that is passed to processes the
923 manager spawns. The names of the variables can contain ASCII letters,
924 digits, and the underscore character. Variable names cannot be empty or
925 start with a digit. In variable values, most characters are allowed,
926 but the whole sequence must be valid UTF-8. (Note that control
927 characters like newline (NL), tab (TAB), or the escape character (ESC),
928 are valid ASCII and thus valid UTF-8). The total length of the
929 environment block is limited to _SC_ARG_MAX value defined by
930 sysconf(3).
931
932 show-environment
933 Dump the systemd manager environment block. This is the environment
934 block that is passed to all processes the manager spawns. The
935 environment block will be dumped in straightforward form suitable
936 for sourcing into most shells. If no special characters or
937 whitespace is present in the variable values, no escaping is
938 performed, and the assignments have the form "VARIABLE=value". If
939 whitespace or characters which have special meaning to the shell
940 are present, dollar-single-quote escaping is used, and assignments
941 have the form "VARIABLE=$'value'". This syntax is known to be
942 supported by bash(1), zsh(1), ksh(1), and busybox(1)'s ash(1), but
943 not dash(1) or fish(1).
944
945 set-environment VARIABLE=VALUE...
946 Set one or more systemd manager environment variables, as specified
947 on the command line. This command will fail if variable names and
948 values do not conform to the rules listed above.
949
950 unset-environment VARIABLE...
951 Unset one or more systemd manager environment variables. If only a
952 variable name is specified, it will be removed regardless of its
953 value. If a variable and a value are specified, the variable is
954 only removed if it has the specified value.
955
956 import-environment VARIABLE...
957 Import all, one or more environment variables set on the client
958 into the systemd manager environment block. If a list of
959 environment variable names is passed, client-side values are then
960 imported into the manager's environment block. If any names are not
961 valid environment variable names or have invalid values according
962 to the rules described above, an error is raised. If no arguments
963 are passed, the entire environment block inherited by the systemctl
964 process is imported. In this mode, any inherited invalid
965 environment variables are quietly ignored.
966
967 Importing of the full inherited environment block (calling this
968 command without any arguments) is deprecated. A shell will set
969 dozens of variables which only make sense locally and are only
970 meant for processes which are descendants of the shell. Such
971 variables in the global environment block are confusing to other
972 processes.
973
974 Manager State Commands
975 daemon-reload
976 Reload the systemd manager configuration. This will rerun all
977 generators (see systemd.generator(7)), reload all unit files, and
978 recreate the entire dependency tree. While the daemon is being
979 reloaded, all sockets systemd listens on behalf of user
980 configuration will stay accessible.
981
982 This command should not be confused with the reload command.
983
984 daemon-reexec
985 Reexecute the systemd manager. This will serialize the manager
986 state, reexecute the process and deserialize the state again. This
987 command is of little use except for debugging and package upgrades.
988 Sometimes, it might be helpful as a heavy-weight daemon-reload.
989 While the daemon is being reexecuted, all sockets systemd listening
990 on behalf of user configuration will stay accessible.
991
992 log-level [LEVEL]
993 If no argument is given, print the current log level of the
994 manager. If an optional argument LEVEL is provided, then the
995 command changes the current log level of the manager to LEVEL
996 (accepts the same values as --log-level= described in systemd(1)).
997
998 log-target [TARGET]
999 If no argument is given, print the current log target of the
1000 manager. If an optional argument TARGET is provided, then the
1001 command changes the current log target of the manager to TARGET
1002 (accepts the same values as --log-target=, described in
1003 systemd(1)).
1004
1005 service-watchdogs [yes|no]
1006 If no argument is given, print the current state of service runtime
1007 watchdogs of the manager. If an optional boolean argument is
1008 provided, then globally enables or disables the service runtime
1009 watchdogs (WatchdogSec=) and emergency actions (e.g. OnFailure= or
1010 StartLimitAction=); see systemd.service(5). The hardware watchdog
1011 is not affected by this setting.
1012
1013 System Commands
1014 is-system-running
1015 Checks whether the system is operational. This returns success
1016 (exit code 0) when the system is fully up and running, specifically
1017 not in startup, shutdown or maintenance mode, and with no failed
1018 services. Failure is returned otherwise (exit code non-zero). In
1019 addition, the current state is printed in a short string to
1020 standard output, see the table below. Use --quiet to suppress this
1021 output.
1022
1023 Use --wait to wait until the boot process is completed before
1024 printing the current state and returning the appropriate error
1025 status. If --wait is in use, states initializing or starting will
1026 not be reported, instead the command will block until a later state
1027 (such as running or degraded) is reached.
1028
1029 Table 2. is-system-running output
1030 ┌─────────────┬─────────────────────┬───────────┐
1031 │Name │ Description │ Exit Code │
1032 ├─────────────┼─────────────────────┼───────────┤
1033 │initializing │ Early bootup, │ > 0 │
1034 │ │ before basic.target │ │
1035 │ │ is reached or the │ │
1036 │ │ maintenance state │ │
1037 │ │ entered. │ │
1038 ├─────────────┼─────────────────────┼───────────┤
1039 │starting │ Late bootup, before │ > 0 │
1040 │ │ the job queue │ │
1041 │ │ becomes idle for │ │
1042 │ │ the first time, or │ │
1043 │ │ one of the rescue │ │
1044 │ │ targets are │ │
1045 │ │ reached. │ │
1046 ├─────────────┼─────────────────────┼───────────┤
1047 │running │ The system is fully │ 0 │
1048 │ │ operational. │ │
1049 ├─────────────┼─────────────────────┼───────────┤
1050 │degraded │ The system is │ > 0 │
1051 │ │ operational but one │ │
1052 │ │ or more units │ │
1053 │ │ failed. │ │
1054 ├─────────────┼─────────────────────┼───────────┤
1055 │maintenance │ The rescue or │ > 0 │
1056 │ │ emergency target is │ │
1057 │ │ active. │ │
1058 ├─────────────┼─────────────────────┼───────────┤
1059 │stopping │ The manager is │ > 0 │
1060 │ │ shutting down. │ │
1061 ├─────────────┼─────────────────────┼───────────┤
1062 │offline │ The manager is not │ > 0 │
1063 │ │ running. │ │
1064 │ │ Specifically, this │ │
1065 │ │ is the operational │ │
1066 │ │ state if an │ │
1067 │ │ incompatible │ │
1068 │ │ program is running │ │
1069 │ │ as system manager │ │
1070 │ │ (PID 1). │ │
1071 ├─────────────┼─────────────────────┼───────────┤
1072 │unknown │ The operational │ > 0 │
1073 │ │ state could not be │ │
1074 │ │ determined, due to │ │
1075 │ │ lack of resources │ │
1076 │ │ or another error │ │
1077 │ │ cause. │ │
1078 └─────────────┴─────────────────────┴───────────┘
1079
1080 default
1081 Enter default mode. This is equivalent to systemctl isolate
1082 default.target. This operation is blocking by default, use
1083 --no-block to request asynchronous behavior.
1084
1085 rescue
1086 Enter rescue mode. This is equivalent to systemctl isolate
1087 rescue.target. This operation is blocking by default, use
1088 --no-block to request asynchronous behavior.
1089
1090 emergency
1091 Enter emergency mode. This is equivalent to systemctl isolate
1092 emergency.target. This operation is blocking by default, use
1093 --no-block to request asynchronous behavior.
1094
1095 halt
1096 Shut down and halt the system. This is mostly equivalent to
1097 systemctl start halt.target --job-mode=replace-irreversibly
1098 --no-block, but also prints a wall message to all users. This
1099 command is asynchronous; it will return after the halt operation is
1100 enqueued, without waiting for it to complete. Note that this
1101 operation will simply halt the OS kernel after shutting down,
1102 leaving the hardware powered on. Use systemctl poweroff for
1103 powering off the system (see below).
1104
1105 If combined with --force, shutdown of all running services is
1106 skipped, however all processes are killed and all file systems are
1107 unmounted or mounted read-only, immediately followed by the system
1108 halt. If --force is specified twice, the operation is immediately
1109 executed without terminating any processes or unmounting any file
1110 systems. This may result in data loss. Note that when --force is
1111 specified twice the halt operation is executed by systemctl itself,
1112 and the system manager is not contacted. This means the command
1113 should succeed even when the system manager has crashed.
1114
1115 poweroff
1116 Shut down and power-off the system. This is mostly equivalent to
1117 systemctl start poweroff.target --job-mode=replace-irreversibly
1118 --no-block, but also prints a wall message to all users. This
1119 command is asynchronous; it will return after the power-off
1120 operation is enqueued, without waiting for it to complete.
1121
1122 If combined with --force, shutdown of all running services is
1123 skipped, however all processes are killed and all file systems are
1124 unmounted or mounted read-only, immediately followed by the
1125 powering off. If --force is specified twice, the operation is
1126 immediately executed without terminating any processes or
1127 unmounting any file systems. This may result in data loss. Note
1128 that when --force is specified twice the power-off operation is
1129 executed by systemctl itself, and the system manager is not
1130 contacted. This means the command should succeed even when the
1131 system manager has crashed.
1132
1133 reboot
1134 Shut down and reboot the system.
1135
1136 This command mostly equivalent to systemctl start reboot.target
1137 --job-mode=replace-irreversibly --no-block, but also prints a wall
1138 message to all users. This command is asynchronous; it will return
1139 after the reboot operation is enqueued, without waiting for it to
1140 complete.
1141
1142 If combined with --force, shutdown of all running services is
1143 skipped, however all processes are killed and all file systems are
1144 unmounted or mounted read-only, immediately followed by the reboot.
1145 If --force is specified twice, the operation is immediately
1146 executed without terminating any processes or unmounting any file
1147 systems. This may result in data loss. Note that when --force is
1148 specified twice the reboot operation is executed by systemctl
1149 itself, and the system manager is not contacted. This means the
1150 command should succeed even when the system manager has crashed.
1151
1152 If the switch --reboot-argument= is given, it will be passed as the
1153 optional argument to the reboot(2) system call.
1154
1155 Options --boot-loader-entry=, --boot-loader-menu=, and
1156 --firmware-setup can be used to select what to do after the reboot.
1157 See the descriptions of those options for details.
1158
1159 kexec
1160 Shut down and reboot the system via kexec. This is equivalent to
1161 systemctl start kexec.target --job-mode=replace-irreversibly
1162 --no-block. This command is asynchronous; it will return after the
1163 reboot operation is enqueued, without waiting for it to complete.
1164
1165 If combined with --force, shutdown of all running services is
1166 skipped, however all processes are killed and all file systems are
1167 unmounted or mounted read-only, immediately followed by the reboot.
1168
1169 exit [EXIT_CODE]
1170 Ask the service manager to quit. This is only supported for user
1171 service managers (i.e. in conjunction with the --user option) or in
1172 containers and is equivalent to poweroff otherwise. This command is
1173 asynchronous; it will return after the exit operation is enqueued,
1174 without waiting for it to complete.
1175
1176 The service manager will exit with the specified exit code, if
1177 EXIT_CODE is passed.
1178
1179 switch-root ROOT [INIT]
1180 Switches to a different root directory and executes a new system
1181 manager process below it. This is intended for use in the initrd,
1182 and will transition from the initrd's system manager process
1183 (a.k.a. "init" process) to the main system manager process which is
1184 loaded from the actual host root files system. This call takes two
1185 arguments: the directory that is to become the new root directory,
1186 and the path to the new system manager binary below it to execute
1187 as PID 1. If the latter is omitted or the empty string, a systemd
1188 binary will automatically be searched for and used as init. If the
1189 system manager path is omitted, equal to the empty string or
1190 identical to the path to the systemd binary, the state of the
1191 initrd's system manager process is passed to the main system
1192 manager, which allows later introspection of the state of the
1193 services involved in the initrd boot phase.
1194
1195 suspend
1196 Suspend the system. This will trigger activation of the special
1197 target unit suspend.target. This command is asynchronous, and will
1198 return after the suspend operation is successfully enqueued. It
1199 will not wait for the suspend/resume cycle to complete.
1200
1201 hibernate
1202 Hibernate the system. This will trigger activation of the special
1203 target unit hibernate.target. This command is asynchronous, and
1204 will return after the hibernation operation is successfully
1205 enqueued. It will not wait for the hibernate/thaw cycle to
1206 complete.
1207
1208 hybrid-sleep
1209 Hibernate and suspend the system. This will trigger activation of
1210 the special target unit hybrid-sleep.target. This command is
1211 asynchronous, and will return after the hybrid sleep operation is
1212 successfully enqueued. It will not wait for the sleep/wake-up cycle
1213 to complete.
1214
1215 suspend-then-hibernate
1216 Suspend the system and hibernate it after the delay specified in
1217 systemd-sleep.conf. This will trigger activation of the special
1218 target unit suspend-then-hibernate.target. This command is
1219 asynchronous, and will return after the hybrid sleep operation is
1220 successfully enqueued. It will not wait for the sleep/wake-up or
1221 hibernate/thaw cycle to complete.
1222
1223 Parameter Syntax
1224 Unit commands listed above take either a single unit name (designated
1225 as UNIT), or multiple unit specifications (designated as PATTERN...).
1226 In the first case, the unit name with or without a suffix must be
1227 given. If the suffix is not specified (unit name is "abbreviated"),
1228 systemctl will append a suitable suffix, ".service" by default, and a
1229 type-specific suffix in case of commands which operate only on specific
1230 unit types. For example,
1231
1232 # systemctl start sshd
1233
1234 and
1235
1236 # systemctl start sshd.service
1237
1238 are equivalent, as are
1239
1240 # systemctl isolate default
1241
1242 and
1243
1244 # systemctl isolate default.target
1245
1246 Note that (absolute) paths to device nodes are automatically converted
1247 to device unit names, and other (absolute) paths to mount unit names.
1248
1249 # systemctl status /dev/sda
1250 # systemctl status /home
1251
1252 are equivalent to:
1253
1254 # systemctl status dev-sda.device
1255 # systemctl status home.mount
1256
1257 In the second case, shell-style globs will be matched against the
1258 primary names of all units currently in memory; literal unit names,
1259 with or without a suffix, will be treated as in the first case. This
1260 means that literal unit names always refer to exactly one unit, but
1261 globs may match zero units and this is not considered an error.
1262
1263 Glob patterns use fnmatch(3), so normal shell-style globbing rules are
1264 used, and "*", "?", "[]" may be used. See glob(7) for more details. The
1265 patterns are matched against the primary names of units currently in
1266 memory, and patterns which do not match anything are silently skipped.
1267 For example:
1268
1269 # systemctl stop sshd@*.service
1270
1271 will stop all sshd@.service instances. Note that alias names of units,
1272 and units that aren't in memory are not considered for glob expansion.
1273
1274 For unit file commands, the specified UNIT should be the name of the
1275 unit file (possibly abbreviated, see above), or the absolute path to
1276 the unit file:
1277
1278 # systemctl enable foo.service
1279
1280 or
1281
1282 # systemctl link /path/to/foo.service
1283
1284
1286 The following options are understood:
1287
1288 -t, --type=
1289 The argument is a comma-separated list of unit types such as
1290 service and socket. When units are listed with list-units,
1291 list-dependencies, show, or status, only units of the specified
1292 types will be shown. By default, units of all types are shown.
1293
1294 As a special case, if one of the arguments is help, a list of
1295 allowed values will be printed and the program will exit.
1296
1297 --state=
1298 The argument is a comma-separated list of unit LOAD, SUB, or ACTIVE
1299 states. When listing units with list-units, list-dependencies, show
1300 or status, show only those in the specified states. Use
1301 --state=failed or --failed to show only failed units.
1302
1303 As a special case, if one of the arguments is help, a list of
1304 allowed values will be printed and the program will exit.
1305
1306 -p, --property=
1307 When showing unit/job/manager properties with the show command,
1308 limit display to properties specified in the argument. The argument
1309 should be a comma-separated list of property names, such as
1310 "MainPID". Unless specified, all known properties are shown. If
1311 specified more than once, all properties with the specified names
1312 are shown. Shell completion is implemented for property names.
1313
1314 For the manager itself, systemctl show will show all available
1315 properties, most of which are derived or closely match the options
1316 described in systemd-system.conf(5).
1317
1318 Properties for units vary by unit type, so showing any unit (even a
1319 non-existent one) is a way to list properties pertaining to this
1320 type. Similarly, showing any job will list properties pertaining to
1321 all jobs. Properties for units are documented in systemd.unit(5),
1322 and the pages for individual unit types systemd.service(5),
1323 systemd.socket(5), etc.
1324
1325 -P
1326 Equivalent to --value --property=, i.e. shows the value of the
1327 property without the property name or "=". Note that using -P once
1328 will also affect all properties listed with -p/--property=.
1329
1330 -a, --all
1331 When listing units with list-units, also show inactive units and
1332 units which are following other units. When showing
1333 unit/job/manager properties, show all properties regardless whether
1334 they are set or not.
1335
1336 To list all units installed in the file system, use the
1337 list-unit-files command instead.
1338
1339 When listing units with list-dependencies, recursively show
1340 dependencies of all dependent units (by default only dependencies
1341 of target units are shown).
1342
1343 When used with status, show journal messages in full, even if they
1344 include unprintable characters or are very long. By default, fields
1345 with unprintable characters are abbreviated as "blob data". (Note
1346 that the pager may escape unprintable characters again.)
1347
1348 -r, --recursive
1349 When listing units, also show units of local containers. Units of
1350 local containers will be prefixed with the container name,
1351 separated by a single colon character (":").
1352
1353 --reverse
1354 Show reverse dependencies between units with list-dependencies,
1355 i.e. follow dependencies of type WantedBy=, RequiredBy=, PartOf=,
1356 BoundBy=, instead of Wants= and similar.
1357
1358 --after
1359 With list-dependencies, show the units that are ordered before the
1360 specified unit. In other words, recursively list units following
1361 the After= dependency.
1362
1363 Note that any After= dependency is automatically mirrored to create
1364 a Before= dependency. Temporal dependencies may be specified
1365 explicitly, but are also created implicitly for units which are
1366 WantedBy= targets (see systemd.target(5)), and as a result of other
1367 directives (for example RequiresMountsFor=). Both explicitly and
1368 implicitly introduced dependencies are shown with
1369 list-dependencies.
1370
1371 When passed to the list-jobs command, for each printed job show
1372 which other jobs are waiting for it. May be combined with --before
1373 to show both the jobs waiting for each job as well as all jobs each
1374 job is waiting for.
1375
1376 --before
1377 With list-dependencies, show the units that are ordered after the
1378 specified unit. In other words, recursively list units following
1379 the Before= dependency.
1380
1381 When passed to the list-jobs command, for each printed job show
1382 which other jobs it is waiting for. May be combined with --after to
1383 show both the jobs waiting for each job as well as all jobs each
1384 job is waiting for.
1385
1386 --with-dependencies
1387 When used with status, cat, list-units, and list-unit-files, those
1388 commands print all specified units and the dependencies of those
1389 units.
1390
1391 Options --reverse, --after, --before may be used to change what
1392 types of dependencies are shown.
1393
1394 -l, --full
1395 Do not ellipsize unit names, process tree entries, journal output,
1396 or truncate unit descriptions in the output of status, list-units,
1397 list-jobs, and list-timers.
1398
1399 Also, show installation targets in the output of is-enabled.
1400
1401 --value
1402 When printing properties with show, only print the value, and skip
1403 the property name and "=". Also see option -P above.
1404
1405 --show-types
1406 When showing sockets, show the type of the socket.
1407
1408 --job-mode=
1409 When queuing a new job, this option controls how to deal with
1410 already queued jobs. It takes one of "fail", "replace",
1411 "replace-irreversibly", "isolate", "ignore-dependencies",
1412 "ignore-requirements", "flush", or "triggering". Defaults to
1413 "replace", except when the isolate command is used which implies
1414 the "isolate" job mode.
1415
1416 If "fail" is specified and a requested operation conflicts with a
1417 pending job (more specifically: causes an already pending start job
1418 to be reversed into a stop job or vice versa), cause the operation
1419 to fail.
1420
1421 If "replace" (the default) is specified, any conflicting pending
1422 job will be replaced, as necessary.
1423
1424 If "replace-irreversibly" is specified, operate like "replace", but
1425 also mark the new jobs as irreversible. This prevents future
1426 conflicting transactions from replacing these jobs (or even being
1427 enqueued while the irreversible jobs are still pending).
1428 Irreversible jobs can still be cancelled using the cancel command.
1429 This job mode should be used on any transaction which pulls in
1430 shutdown.target.
1431
1432 "isolate" is only valid for start operations and causes all other
1433 units to be stopped when the specified unit is started. This mode
1434 is always used when the isolate command is used.
1435
1436 "flush" will cause all queued jobs to be canceled when the new job
1437 is enqueued.
1438
1439 If "ignore-dependencies" is specified, then all unit dependencies
1440 are ignored for this new job and the operation is executed
1441 immediately. If passed, no required units of the unit passed will
1442 be pulled in, and no ordering dependencies will be honored. This is
1443 mostly a debugging and rescue tool for the administrator and should
1444 not be used by applications.
1445
1446 "ignore-requirements" is similar to "ignore-dependencies", but only
1447 causes the requirement dependencies to be ignored, the ordering
1448 dependencies will still be honored.
1449
1450 "triggering" may only be used with systemctl stop. In this mode,
1451 the specified unit and any active units that trigger it are
1452 stopped. See the discussion of Triggers= in systemd.unit(5) for
1453 more information about triggering units.
1454
1455 -T, --show-transaction
1456 When enqueuing a unit job (for example as effect of a systemctl
1457 start invocation or similar), show brief information about all jobs
1458 enqueued, covering both the requested job and any added because of
1459 unit dependencies. Note that the output will only include jobs
1460 immediately part of the transaction requested. It is possible that
1461 service start-up program code run as effect of the enqueued jobs
1462 might request further jobs to be pulled in. This means that
1463 completion of the listed jobs might ultimately entail more jobs
1464 than the listed ones.
1465
1466 --fail
1467 Shorthand for --job-mode=fail.
1468
1469 When used with the kill command, if no units were killed, the
1470 operation results in an error.
1471
1472 --check-inhibitors=
1473 When system shutdown or sleep state is requested, this option
1474 controls checking of inhibitor locks. It takes one of "auto", "yes"
1475 or "no". Defaults to "auto", which will behave like "yes" for
1476 interactive invocations (i.e. from a TTY) and "no" for
1477 non-interactive invocations. "yes" lets the request respect
1478 inhibitor locks. "no" lets the request ignore inhibitor locks.
1479
1480 Applications can establish inhibitor locks to prevent certain
1481 important operations (such as CD burning) from being interrupted by
1482 system shutdown or sleep. Any user may take these locks and
1483 privileged users may override these locks. If any locks are taken,
1484 shutdown and sleep state requests will normally fail (unless
1485 privileged). However, if "no" is specified or "auto" is specified
1486 on a non-interactive requests, the operation will be attempted. If
1487 locks are present, the operation may require additional privileges.
1488
1489 Option --force provides another way to override inhibitors.
1490
1491 -i
1492 Shortcut for --check-inhibitors=no.
1493
1494 --dry-run
1495 Just print what would be done. Currently supported by verbs halt,
1496 poweroff, reboot, kexec, suspend, hibernate, hybrid-sleep,
1497 suspend-then-hibernate, default, rescue, emergency, and exit.
1498
1499 -q, --quiet
1500 Suppress printing of the results of various commands and also the
1501 hints about truncated log lines. This does not suppress output of
1502 commands for which the printed output is the only result (like
1503 show). Errors are always printed.
1504
1505 --no-warn
1506 Don't generate the warnings shown by default in the following
1507 cases:
1508
1509 • when systemctl is invoked without procfs mounted on /proc/,
1510
1511 • when using enable or disable on units without install
1512 information (i.e. don't have or have an empty [Install]
1513 section).
1514
1515
1516 --no-block
1517 Do not synchronously wait for the requested operation to finish. If
1518 this is not specified, the job will be verified, enqueued and
1519 systemctl will wait until the unit's start-up is completed. By
1520 passing this argument, it is only verified and enqueued. This
1521 option may not be combined with --wait.
1522
1523 --wait
1524 Synchronously wait for started units to terminate again. This
1525 option may not be combined with --no-block. Note that this will
1526 wait forever if any given unit never terminates (by itself or by
1527 getting stopped explicitly); particularly services which use
1528 "RemainAfterExit=yes".
1529
1530 When used with is-system-running, wait until the boot process is
1531 completed before returning.
1532
1533 --user
1534 Talk to the service manager of the calling user, rather than the
1535 service manager of the system.
1536
1537 --system
1538 Talk to the service manager of the system. This is the implied
1539 default.
1540
1541 --failed
1542 List units in failed state. This is equivalent to --state=failed.
1543
1544 --no-wall
1545 Do not send wall message before halt, power-off and reboot.
1546
1547 --global
1548 When used with enable and disable, operate on the global user
1549 configuration directory, thus enabling or disabling a unit file
1550 globally for all future logins of all users.
1551
1552 --no-reload
1553 When used with enable and disable, do not implicitly reload daemon
1554 configuration after executing the changes.
1555
1556 --no-ask-password
1557 When used with start and related commands, disables asking for
1558 passwords. Background services may require input of a password or
1559 passphrase string, for example to unlock system hard disks or
1560 cryptographic certificates. Unless this option is specified and the
1561 command is invoked from a terminal, systemctl will query the user
1562 on the terminal for the necessary secrets. Use this option to
1563 switch this behavior off. In this case, the password must be
1564 supplied by some other means (for example graphical password
1565 agents) or the service might fail. This also disables querying the
1566 user for authentication for privileged operations.
1567
1568 --kill-whom=
1569 When used with kill, choose which processes to send a signal to.
1570 Must be one of main, control or all to select whether to kill only
1571 the main process, the control process or all processes of the unit.
1572 The main process of the unit is the one that defines the life-time
1573 of it. A control process of a unit is one that is invoked by the
1574 manager to induce state changes of it. For example, all processes
1575 started due to the ExecStartPre=, ExecStop= or ExecReload= settings
1576 of service units are control processes. Note that there is only one
1577 control process per unit at a time, as only one state change is
1578 executed at a time. For services of type Type=forking, the initial
1579 process started by the manager for ExecStart= is a control process,
1580 while the process ultimately forked off by that one is then
1581 considered the main process of the unit (if it can be determined).
1582 This is different for service units of other types, where the
1583 process forked off by the manager for ExecStart= is always the main
1584 process itself. A service unit consists of zero or one main
1585 process, zero or one control process plus any number of additional
1586 processes. Not all unit types manage processes of these types
1587 however. For example, for mount units, control processes are
1588 defined (which are the invocations of /usr/bin/mount and
1589 /usr/bin/umount), but no main process is defined. If omitted,
1590 defaults to all.
1591
1592 -s, --signal=
1593 When used with kill, choose which signal to send to selected
1594 processes. Must be one of the well-known signal specifiers such as
1595 SIGTERM, SIGINT or SIGSTOP. If omitted, defaults to SIGTERM.
1596
1597 The special value "help" will list the known values and the program
1598 will exit immediately, and the special value "list" will list known
1599 values along with the numerical signal numbers and the program will
1600 exit immediately.
1601
1602 --what=
1603 Select what type of per-unit resources to remove when the clean
1604 command is invoked, see below. Takes one of configuration, state,
1605 cache, logs, runtime to select the type of resource. This option
1606 may be specified more than once, in which case all specified
1607 resource types are removed. Also accepts the special value all as a
1608 shortcut for specifying all five resource types. If this option is
1609 not specified defaults to the combination of cache and runtime,
1610 i.e. the two kinds of resources that are generally considered to be
1611 redundant and can be reconstructed on next invocation.
1612
1613 -f, --force
1614 When used with enable, overwrite any existing conflicting symlinks.
1615
1616 When used with edit, create all of the specified units which do not
1617 already exist.
1618
1619 When used with halt, poweroff, reboot or kexec, execute the
1620 selected operation without shutting down all units. However, all
1621 processes will be killed forcibly and all file systems are
1622 unmounted or remounted read-only. This is hence a drastic but
1623 relatively safe option to request an immediate reboot. If --force
1624 is specified twice for these operations (with the exception of
1625 kexec), they will be executed immediately, without terminating any
1626 processes or unmounting any file systems. Warning: specifying
1627 --force twice with any of these operations might result in data
1628 loss. Note that when --force is specified twice the selected
1629 operation is executed by systemctl itself, and the system manager
1630 is not contacted. This means the command should succeed even when
1631 the system manager has crashed.
1632
1633 --message=
1634 When used with halt, poweroff or reboot, set a short message
1635 explaining the reason for the operation. The message will be logged
1636 together with the default shutdown message.
1637
1638 --now
1639 When used with enable, the units will also be started. When used
1640 with disable or mask, the units will also be stopped. The start or
1641 stop operation is only carried out when the respective enable or
1642 disable operation has been successful.
1643
1644 --root=
1645 When used with enable/disable/is-enabled (and related commands),
1646 use the specified root path when looking for unit files. If this
1647 option is present, systemctl will operate on the file system
1648 directly, instead of communicating with the systemd daemon to carry
1649 out changes.
1650
1651 --image=image
1652 Takes a path to a disk image file or block device node. If
1653 specified, all operations are applied to file system in the
1654 indicated disk image. This option is similar to --root=, but
1655 operates on file systems stored in disk images or block devices.
1656 The disk image should either contain just a file system or a set of
1657 file systems within a GPT partition table, following the
1658 Discoverable Partitions Specification[1]. For further information
1659 on supported disk images, see systemd-nspawn(1)'s switch of the
1660 same name.
1661
1662 --runtime
1663 When used with enable, disable, edit, (and related commands), make
1664 changes only temporarily, so that they are lost on the next reboot.
1665 This will have the effect that changes are not made in
1666 subdirectories of /etc/ but in /run/, with identical immediate
1667 effects, however, since the latter is lost on reboot, the changes
1668 are lost too.
1669
1670 Similarly, when used with set-property, make changes only
1671 temporarily, so that they are lost on the next reboot.
1672
1673 --preset-mode=
1674 Takes one of "full" (the default), "enable-only", "disable-only".
1675 When used with the preset or preset-all commands, controls whether
1676 units shall be disabled and enabled according to the preset rules,
1677 or only enabled, or only disabled.
1678
1679 -n, --lines=
1680 When used with status, controls the number of journal lines to
1681 show, counting from the most recent ones. Takes a positive integer
1682 argument, or 0 to disable journal output. Defaults to 10.
1683
1684 -o, --output=
1685 When used with status, controls the formatting of the journal
1686 entries that are shown. For the available choices, see
1687 journalctl(1). Defaults to "short".
1688
1689 --firmware-setup
1690 When used with the reboot command, indicate to the system's
1691 firmware to reboot into the firmware setup interface. Note that
1692 this functionality is not available on all systems.
1693
1694 --boot-loader-menu=timeout
1695 When used with the reboot command, indicate to the system's boot
1696 loader to show the boot loader menu on the following boot. Takes a
1697 time value as parameter — indicating the menu timeout. Pass zero in
1698 order to disable the menu timeout. Note that not all boot loaders
1699 support this functionality.
1700
1701 --boot-loader-entry=ID
1702 When used with the reboot command, indicate to the system's boot
1703 loader to boot into a specific boot loader entry on the following
1704 boot. Takes a boot loader entry identifier as argument, or "help"
1705 in order to list available entries. Note that not all boot loaders
1706 support this functionality.
1707
1708 --reboot-argument=
1709 This switch is used with reboot. The value is architecture and
1710 firmware specific. As an example, "recovery" might be used to
1711 trigger system recovery, and "fota" might be used to trigger a
1712 “firmware over the air” update.
1713
1714 --plain
1715 When used with list-dependencies, list-units or list-machines, the
1716 output is printed as a list instead of a tree, and the bullet
1717 circles are omitted.
1718
1719 --timestamp=
1720 Change the format of printed timestamps. The following values may
1721 be used:
1722
1723 pretty (this is the default)
1724 "Day YYYY-MM-DD HH:MM:SS TZ"
1725
1726 unix
1727 "@seconds-since-the-epoch"
1728
1729 us, µs
1730 "Day YYYY-MM-DD HH:MM:SS.UUUUUU TZ"
1731
1732 utc
1733 "Day YYYY-MM-DD HH:MM:SS UTC"
1734
1735 us+utc, µs+utc
1736 "Day YYYY-MM-DD HH:MM:SS.UUUUUU UTC"
1737
1738 --mkdir
1739 When used with bind, creates the destination file or directory
1740 before applying the bind mount. Note that even though the name of
1741 this option suggests that it is suitable only for directories, this
1742 option also creates the destination file node to mount over if the
1743 object to mount is not a directory, but a regular file, device
1744 node, socket or FIFO.
1745
1746 --marked
1747 Only allowed with reload-or-restart. Enqueues restart jobs for all
1748 units that have the "needs-restart" mark, and reload jobs for units
1749 that have the "needs-reload" mark. When a unit marked for reload
1750 does not support reload, restart will be queued. Those properties
1751 can be set using set-property Markers=....
1752
1753 Unless --no-block is used, systemctl will wait for the queued jobs
1754 to finish.
1755
1756 --read-only
1757 When used with bind, creates a read-only bind mount.
1758
1759 --drop-in=
1760 When used with edit, use the given drop-in file name instead of
1761 override.conf.
1762
1763 -H, --host=
1764 Execute the operation remotely. Specify a hostname, or a username
1765 and hostname separated by "@", to connect to. The hostname may
1766 optionally be suffixed by a port ssh is listening on, separated by
1767 ":", and then a container name, separated by "/", which connects
1768 directly to a specific container on the specified host. This will
1769 use SSH to talk to the remote machine manager instance. Container
1770 names may be enumerated with machinectl -H HOST. Put IPv6 addresses
1771 in brackets.
1772
1773 -M, --machine=
1774 Execute operation on a local container. Specify a container name to
1775 connect to, optionally prefixed by a user name to connect as and a
1776 separating "@" character. If the special string ".host" is used in
1777 place of the container name, a connection to the local system is
1778 made (which is useful to connect to a specific user's user bus:
1779 "--user --machine=lennart@.host"). If the "@" syntax is not used,
1780 the connection is made as root user. If the "@" syntax is used
1781 either the left hand side or the right hand side may be omitted
1782 (but not both) in which case the local user name and ".host" are
1783 implied.
1784
1785 --no-pager
1786 Do not pipe output into a pager.
1787
1788 --legend=BOOL
1789 Enable or disable printing of the legend, i.e. column headers and
1790 the footer with hints. The legend is printed by default, unless
1791 disabled with --quiet or similar.
1792
1793 -h, --help
1794 Print a short help text and exit.
1795
1796 --version
1797 Print a short version string and exit.
1798
1800 On success, 0 is returned, a non-zero failure code otherwise.
1801
1802 systemctl uses the return codes defined by LSB, as defined in LSB
1803 3.0.0[2].
1804
1805 Table 3. LSB return codes
1806 ┌──────┬─────────────────────┬─────────────────────┐
1807 │Value │ Description in LSB │ Use in systemd │
1808 ├──────┼─────────────────────┼─────────────────────┤
1809 │0 │ "program is running │ unit is active │
1810 │ │ or service is OK" │ │
1811 ├──────┼─────────────────────┼─────────────────────┤
1812 │1 │ "program is dead │ unit not failed │
1813 │ │ and /var/run pid │ (used by is-failed) │
1814 │ │ file exists" │ │
1815 ├──────┼─────────────────────┼─────────────────────┤
1816 │2 │ "program is dead │ unused │
1817 │ │ and /var/lock lock │ │
1818 │ │ file exists" │ │
1819 ├──────┼─────────────────────┼─────────────────────┤
1820 │3 │ "program is not │ unit is not active │
1821 │ │ running" │ │
1822 ├──────┼─────────────────────┼─────────────────────┤
1823 │4 │ "program or service │ no such unit │
1824 │ │ status is unknown" │ │
1825 └──────┴─────────────────────┴─────────────────────┘
1826
1827 The mapping of LSB service states to systemd unit states is imperfect,
1828 so it is better to not rely on those return values but to look for
1829 specific unit states and substates instead.
1830
1832 $SYSTEMD_EDITOR
1833 Editor to use when editing units; overrides $EDITOR and $VISUAL. If
1834 neither $SYSTEMD_EDITOR nor $EDITOR nor $VISUAL are present or if
1835 it is set to an empty string or if their execution failed,
1836 systemctl will try to execute well known editors in this order:
1837 editor(1), nano(1), vim(1), vi(1).
1838
1839 $SYSTEMD_LOG_LEVEL
1840 The maximum log level of emitted messages (messages with a higher
1841 log level, i.e. less important ones, will be suppressed). Either
1842 one of (in order of decreasing importance) emerg, alert, crit, err,
1843 warning, notice, info, debug, or an integer in the range 0...7. See
1844 syslog(3) for more information.
1845
1846 $SYSTEMD_LOG_COLOR
1847 A boolean. If true, messages written to the tty will be colored
1848 according to priority.
1849
1850 This setting is only useful when messages are written directly to
1851 the terminal, because journalctl(1) and other tools that display
1852 logs will color messages based on the log level on their own.
1853
1854 $SYSTEMD_LOG_TIME
1855 A boolean. If true, console log messages will be prefixed with a
1856 timestamp.
1857
1858 This setting is only useful when messages are written directly to
1859 the terminal or a file, because journalctl(1) and other tools that
1860 display logs will attach timestamps based on the entry metadata on
1861 their own.
1862
1863 $SYSTEMD_LOG_LOCATION
1864 A boolean. If true, messages will be prefixed with a filename and
1865 line number in the source code where the message originates.
1866
1867 Note that the log location is often attached as metadata to journal
1868 entries anyway. Including it directly in the message text can
1869 nevertheless be convenient when debugging programs.
1870
1871 $SYSTEMD_LOG_TARGET
1872 The destination for log messages. One of console (log to the
1873 attached tty), console-prefixed (log to the attached tty but with
1874 prefixes encoding the log level and "facility", see syslog(3), kmsg
1875 (log to the kernel circular log buffer), journal (log to the
1876 journal), journal-or-kmsg (log to the journal if available, and to
1877 kmsg otherwise), auto (determine the appropriate log target
1878 automatically, the default), null (disable log output).
1879
1880 $SYSTEMD_PAGER
1881 Pager to use when --no-pager is not given; overrides $PAGER. If
1882 neither $SYSTEMD_PAGER nor $PAGER are set, a set of well-known
1883 pager implementations are tried in turn, including less(1) and
1884 more(1), until one is found. If no pager implementation is
1885 discovered no pager is invoked. Setting this environment variable
1886 to an empty string or the value "cat" is equivalent to passing
1887 --no-pager.
1888
1889 Note: if $SYSTEMD_PAGERSECURE is not set, $SYSTEMD_PAGER (as well
1890 as $PAGER) will be silently ignored.
1891
1892 $SYSTEMD_LESS
1893 Override the options passed to less (by default "FRSXMK").
1894
1895 Users might want to change two options in particular:
1896
1897 K
1898 This option instructs the pager to exit immediately when Ctrl+C
1899 is pressed. To allow less to handle Ctrl+C itself to switch
1900 back to the pager command prompt, unset this option.
1901
1902 If the value of $SYSTEMD_LESS does not include "K", and the
1903 pager that is invoked is less, Ctrl+C will be ignored by the
1904 executable, and needs to be handled by the pager.
1905
1906 X
1907 This option instructs the pager to not send termcap
1908 initialization and deinitialization strings to the terminal. It
1909 is set by default to allow command output to remain visible in
1910 the terminal even after the pager exits. Nevertheless, this
1911 prevents some pager functionality from working, in particular
1912 paged output cannot be scrolled with the mouse.
1913
1914 See less(1) for more discussion.
1915
1916 $SYSTEMD_LESSCHARSET
1917 Override the charset passed to less (by default "utf-8", if the
1918 invoking terminal is determined to be UTF-8 compatible).
1919
1920 $SYSTEMD_PAGERSECURE
1921 Takes a boolean argument. When true, the "secure" mode of the pager
1922 is enabled; if false, disabled. If $SYSTEMD_PAGERSECURE is not set
1923 at all, secure mode is enabled if the effective UID is not the same
1924 as the owner of the login session, see geteuid(2) and
1925 sd_pid_get_owner_uid(3). In secure mode, LESSSECURE=1 will be set
1926 when invoking the pager, and the pager shall disable commands that
1927 open or create new files or start new subprocesses. When
1928 $SYSTEMD_PAGERSECURE is not set at all, pagers which are not known
1929 to implement secure mode will not be used. (Currently only less(1)
1930 implements secure mode.)
1931
1932 Note: when commands are invoked with elevated privileges, for
1933 example under sudo(8) or pkexec(1), care must be taken to ensure
1934 that unintended interactive features are not enabled. "Secure" mode
1935 for the pager may be enabled automatically as describe above.
1936 Setting SYSTEMD_PAGERSECURE=0 or not removing it from the inherited
1937 environment allows the user to invoke arbitrary commands. Note that
1938 if the $SYSTEMD_PAGER or $PAGER variables are to be honoured,
1939 $SYSTEMD_PAGERSECURE must be set too. It might be reasonable to
1940 completely disable the pager using --no-pager instead.
1941
1942 $SYSTEMD_COLORS
1943 Takes a boolean argument. When true, systemd and related utilities
1944 will use colors in their output, otherwise the output will be
1945 monochrome. Additionally, the variable can take one of the
1946 following special values: "16", "256" to restrict the use of colors
1947 to the base 16 or 256 ANSI colors, respectively. This can be
1948 specified to override the automatic decision based on $TERM and
1949 what the console is connected to.
1950
1951 $SYSTEMD_URLIFY
1952 The value must be a boolean. Controls whether clickable links
1953 should be generated in the output for terminal emulators supporting
1954 this. This can be specified to override the decision that systemd
1955 makes based on $TERM and other conditions.
1956
1958 systemd(1), journalctl(1), loginctl(1), machinectl(1), systemd.unit(5),
1959 systemd.resource-control(5), systemd.special(7), wall(1),
1960 systemd.preset(5), systemd.generator(7), glob(7)
1961
1963 1. Discoverable Partitions Specification
1964 https://uapi-group.org/specifications/specs/discoverable_partitions_specification
1965
1966 2. LSB 3.0.0
1967 http://refspecs.linuxbase.org/LSB_3.0.0/LSB-PDA/LSB-PDA/iniscrptact.html
1968
1969
1970
1971systemd 253 SYSTEMCTL(1)