Age | Commit message (Collapse) | Author |
|
This makes sure "systemctl status user.slice" shows a nice cgroup tree
of all logged in users.
|
|
same for machinectl
|
|
Previously for an instantiated unit foo@bar.service we created a cgroup
foo@.service/foo@bar.service, in order to place all instances of the
same template inside the same subtree. As we now implicitly add all
instantiated units into one per-template slice we don't need this
complexity anymore, and instance units can map directly to the cgroups
of their full name.
|
|
The root slice is after all the root cgroup, so don't attempt to delete
it.
|
|
|
|
default
If no explicit slice is configured for an instantiated unit, create an
implicit one for all instances of the same template.
|
|
|
|
|
|
|
|
|
|
|
|
Same for machinectl.
|
|
|
|
Since the cgroupfs is currently not virtualized for containers we
shouldn't reset the hosts agent from the container.
|
|
|
|
As we want to centralized cgroup access we should stop killing the user
sessions directly from the systemd-user-sessions service. Instead, rely
on PID 1 doing this by adding the right ordering dependencies to the
session scope units.
|
|
client that wants to register the session
Otherwise we'll hanging for the job to finish without any job existing.
Similar, for machined.
|
|
When PID 1 reloads the units logind/machined will see UnitRemoved
signals for all units. Instead of trusting these immediately, let's
check the actual unit state before considering a unit gone, so that
reloading PID 1 is not mistaken as the end of all sessions.
|
|
Also, properly remove cgroup path from hashmap when freeing unit.
|
|
This is necessary so that these properties survive a daemon reload.
|
|
reload/reexec of PID 1
Since we'll unload all units/job during a reload, and then readd them it
is really useful for clients to be aware of this phase hence sent a
signal out before and after. This signal is called "Reloading" (despite
the fact that it is also sent out during reexecution, which we consider
a special case in this context) and has one boolean parameter which is
true for the signal sent before the reload, and false for the signal
after the reload. The UnitRemoved/JobRremoved and UnitNew/JobNew due to
the reloading are guranteed to be between the pair of Reloading
messages.
|
|
When we issue a reexecution request via the private socket we need to
expect a "Disconnected" in addition to "NoReply" when the connection is
terminated.
|
|
reloaded
|
|
When a scope unit is created due to deserialization rather than client
request don't enforce that the PIDs set must be non-empty, since the
cgroup is already populated.
|
|
While we are reloading we shouldn't suppress adding units to the bus
queue when there are no subscribers, simply because we might not have
deserialized the subscribers list yet. Hence, during reloading always
assume we have subscribers.
|
|
|
|
Some units set KillMode=none to survive the initrd→rootfs transition. We
cannot remove their cgroups, but that shouldn't really be considered an
issue, so let's downgrade the error message.
|
|
|
|
This allows to specify:
dmi:bvn*:bvr*:bd*:svnVENDOR:pn:Model 231*:pvr*
dmi:bvn*:bvr*:bd*:svnVENDOR:pn:Series 12*:pvr*
KEY_A=value
KEY_B=value
Instead of:
dmi:bvn*:bvr*:bd*:svnVENDOR:pn:Model 231*:pvr*
KEY_A=value
KEY_B=value
dmi:bvn*:bvr*:bd*:svnVENDOR:pn:Series 12*:pvr*
KEY_A=value
KEY_B=value
|
|
|
|
As of kmod v14, it is possible to export the static node information from
/lib/modules/`uname -r`/modules.devname in tmpfiles.d(5) format.
Use this functionality to let systemd-tmpfilesd create the static device nodes
at boot, and drop the functionality from systemd-udevd.
As an effect of this we can move from systemd-udevd to systemd-tmpfiles-setup-dev:
* the conditional CAP_MKNOD (replaced by checking if /sys is mounted rw)
* ordering before local-fs-pre.target (see 89d09e1b5c65a2d97840f682e0932c8bb499f166)
|
|
|
|
|
|
_listen_fds() is modified to accept unset_environment arg as keyword,
to match new notify().
|
|
The tests check if the tables have entries for all values
in the enum, and that the entries are unique.
|
|
|
|
During re-execution and shutdown cgroups agents might not be able
to connect to systemd's private D-Bus socket, the printed error to
the console is misleding in that case, so turn it into a warning.
|
|
During shutdown, when we try to clean up all remaining processes, the
kernel will fork new agents every time a cgroup runs empty. These
new processes cause delays in the final SIGTERM, SIGKILL logic.
Apart from that, this should also avoid that the kernel-forked binaries
cause unpredictably timed access to the filesystem which we might need to
unmount.
|
|
Don't segfault, if m->from_proc_self_mountinfo and m->from_fragment is
false.
https://bugzilla.redhat.com/show_bug.cgi?id=957783#c9
|
|
|
|
|
|
https://bugs.freedesktop.org/show_bug.cgi?id=66542
|
|
The affected files in this patch had inconsistent use of tabs vs. spaces
for indentation, and this patch eliminates the stray tabs.
Also, the opening brace of sigchld_hdl() in activate.c was moved so the
opening braces are consistent throughout the file.
|
|
The kernel adds those when the file is deleted,
but we don't really care if the file is still there
or not. The downside is that if the filename ends
in ' (deleted)', this part of the filename will be
removed. Too bad.
|
|
Use proper grammar, word usage, adjective hyphenation, commas,
capitalization, spelling, etc.
To improve readability, some run-on sentences or sentence fragments were
revised.
[zj: remove the space from 'file name', 'host name', and 'time zone'.]
|
|
|
|
The return value of machine_start_scope might be undefined if m->scope
is non-NULL.
|
|
|
|
|
|
Since we should allow registering/unregistering transient units with the
same name in a tight-loop, we need to make the GC more aggressive, so
that dead units are cleaned up immediately instead of later.
hence, execute the GC sweep on every event loop iteration and clean up
units. This of course, means we need to be careful with adding units to
the GC queue, which we already are since we execute check_gc() of each
unit type already when adding something to the queue.
|