diff --git a/TODO b/TODO
index 0b11599b8..33308ef18 100644
--- a/TODO
+++ b/TODO
@@ -46,7 +46,6 @@ CGroup Rework Completion:
* introduce high-level settings for RT budget, swappiness
* wiki: document new bus APIs of PID 1 (transient units, Reloading signal)
-* review: systemctl commands
* Send SIGHUP and SIGTERM in session scopes
diff --git a/man/systemctl.xml b/man/systemctl.xml
index 982051778..4bfce95ff 100644
--- a/man/systemctl.xml
+++ b/man/systemctl.xml
@@ -433,10 +433,7 @@ along with systemd; If not, see .
is lost on reboot, the changes are lost too.
Similar, when used with
- set-cgroup-attr,
- unset-cgroup-attr,
- set-cgroup and
- unset-cgroup, make changes only
+ set-property make changes only
temporarily, so that they are lost on the next
reboot.
@@ -719,93 +716,28 @@ kobject-uevent 1 systemd-udevd-kernel.socket systemd-udevd.service
- get-cgroup-attr NAMEATTRIBUTE...
+ set-property NAMEASSIGNMENT...
- Retrieve the specified control group attributes of the
- specified unit. Takes a unit name and one or more attribute
- names such as cpu.shares. This will
- output the current values of the specified attributes,
- separated by new-lines. For attributes that take a list of
- items, the output will be newline-separated, too. This
- operation will always try to retrieve the data in question
- from the kernel first, and if that is not available, use the
- configured values instead. Instead of low-level control
- group attribute names, high-level pretty names may be used,
- as used for unit execution environment configuration, see
- systemd.exec5
- for details. For example, passing
- memory.limit_in_bytes and
- MemoryLimit is equivalent.
-
-
+ Set the specified unit properties at runtime where
+ this is supported. This allows changing configuration
+ parameter properties such as resource management controls at
+ runtime. Not all properties may be changed at runtime, but
+ many resource management settings (primarily those in
+ systemd.cgroup5)
+ may. The changes are applied instantly, and stored on disk
+ for future boots, unless is
+ passed in which case the settings only apply until the next
+ reboot. The syntax of the property assignment follows
+ closely the syntax of assignments in unit files.
-
- set-cgroup-attr NAMEATTRIBUTEVALUE...
+ Example: systemctl set-property foobar.service CPUShares=777
-
- Set the specified control group attribute of the
- specified unit to the specified value. Takes a unit
- name and an attribute name such as
- cpu.shares, plus one or more values
- (multiple values may only be used for attributes that take
- multiple values). This operation will immediately update the
- kernel attribute for this unit and persistently store this
- setting for later reboots (unless
- is passed, in which case the setting is not saved
- persistently and only valid until the next reboot.) Instead
- of low-level control group attribute names, high-level pretty
- names may be used, as used for unit execution environment
- configuration, see
- systemd.exec5
- for details. For example, passing
- memory.limit_in_bytes and
- MemoryLimit is equivalent. This operation
- will implicitly create a control group for the unit in the
- controller the attribute belongs to, if needed. For
- attributes that take multiple values, this operation will
- append the specified values to the previously set values
- list (use unset-cgroup-attr to reset the
- list explicitly). For attributes that take a single value
- only, the list will be reset implicitly.
-
-
-
-
- unset-cgroup-attr NAMEATTRIBUTE...
-
- Unset the specified control group attributes
- of the specified unit. Takes a unit name and one or more
- attribut names such as cpu.shares. This
- operation might or might not have an immediate effect on the
- current kernel attribute value. This will remove any
- persistently stored configuration values for this attribute
- (as set with set-cgroup-attr before),
- unless is passed, in which case the
- configuration is reset only until the next reboot. Again,
- high-level control group attributes may be used instead of the
- low-level kernel ones. For attributes which take multiple
- values, all currently set values are reset.
-
-
-
-
- set-cgroup NAMECGROUP...
- unset-cgroup NAMECGROUP...
-
- Add or remove a unit to/from a specific
- control group hierarchy and/or control group path. Takes a
- unit name, plus a control group specification in the syntax
- CONTROLLER:PATH
- or CONTROLLER. In the latter syntax
- (where the path is omitted), the default unit control group
- path is implied. Examples: cpu or
- cpu:/foo/bar. If a unit is removed from a
- control group hierarchy, all its processes will be moved to the
- root group of the hierarchy and all control group attributes
- will be reset. These operations are immediately reflected in
- the kernel hierarchy, and stored persistently to disk (unless
- is passed).
+ Note that this command allows changing multiple
+ properties at the same time, which is preferable over
+ setting them individually. Like unit file configuration
+ settings assigning the empty list to list parameters will
+ reset the list.
@@ -1354,6 +1286,7 @@ kobject-uevent 1 systemd-udevd-kernel.socket systemd-udevd.service
journalctl1,
loginctl1,
systemd.unit5,
+ systemd.cgroupq5,
systemd.special7,
wall1,
systemd.preset5
diff --git a/src/systemctl/systemctl.c b/src/systemctl/systemctl.c
index c9f9981f9..9f47b2cf7 100644
--- a/src/systemctl/systemctl.c
+++ b/src/systemctl/systemctl.c
@@ -4788,7 +4788,7 @@ static int systemctl_help(void) {
" list-jobs List jobs\n"
" cancel [JOB...] Cancel all, one, or more jobs\n\n"
"Status Commands:\n"
- " dump Dump server status\n"
+ " dump Dump server status\n\n"
"Snapshot Commands:\n"
" snapshot [NAME] Create a snapshot\n"
" delete [NAME...] Remove one or more snapshots\n\n"