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