summaryrefslogtreecommitdiff
path: root/src/core
AgeCommit message (Collapse)Author
2013-07-11shutdown: fix /proc/cmdline reading of 'quiet'Kay Sievers
2013-07-10core: uninstall cgroup agent only if we are running outside of a containerLennart Poettering
Since the cgroupfs is currently not virtualized for containers we shouldn't reset the hosts agent from the container.
2013-07-10user-sessions: rely on PID 1 to kill sessionsLennart Poettering
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.
2013-07-10unit: when deserializing cgroup path add it back into cgroup hashmapLennart Poettering
Also, properly remove cgroup path from hashmap when freeing unit.
2013-07-10unit: save description/slice of transient units to /runLennart Poettering
This is necessary so that these properties survive a daemon reload.
2013-07-10core: send out "Reloading" signal before and after doing a full ↵Lennart Poettering
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.
2013-07-10scope: don't require an initialized PIDs set when deserializingLennart Poettering
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.
2013-07-10core: while we are reloading don't suppress bus signalsLennart Poettering
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.
2013-07-10core: serialize/deserialize bus subscribersLennart Poettering
2013-07-10cgroup: downgrade error message when we cannot remove a cgroup to debugLennart Poettering
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.
2013-07-05tests: add tests for string lookup tablesZbigniew Jędrzejewski-Szmek
The tests check if the tables have entries for all values in the enum, and that the entries are unique.
2013-07-05suppress status message output at shutdown when 'quiet' is givenKay Sievers
2013-07-04disable the cgroups release agent when shutting downKay Sievers
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.
2013-07-04core/mount.c:mount_dump(): don't segfault, if mount is not mounted anymoreHarald Hoyer
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
2013-07-02replace tabs with spaces in various filesJason St. John
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.
2013-07-02man: improve grammar and word formatting in numerous man pagesJason St. John
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'.]
2013-07-02core: make GC more aggressiveLennart Poettering
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.
2013-07-02dbus-scope: initialize variable before accessingDave Reisner
2013-07-02core: don't consider a unit's cgroup empty if only a subcgroup runs emptyLennart Poettering
2013-07-02machined: sync to /run after job completedLennart Poettering
2013-07-02logind: port over to use scopes+slices for all cgroup stuffLennart Poettering
In order to prepare things for the single-writer cgroup scheme, let's make logind use systemd's own primitives for cgroup management. Every login user now gets his own private slice unit, in which his sessions live in a scope unit each. Also, add user@$UID.service to the same slice, and implicitly start it on first login.
2013-07-02scope: fix state string tableLennart Poettering
2013-07-02scope: implement reset-failed commandLennart Poettering
2013-07-02core: split out unit bus path unescaping into unit_name_from_dbus_path()Lennart Poettering
2013-07-02scope: make TimeoutStopUSec= settable for transient unitsLennart Poettering
2013-07-01core: add support to run transient units in arbitrary slicesLennart Poettering
2013-07-01core: parse Slice= from the unit type specific unit file sectionLennart Poettering
Since not all unit types know Slice= it belongs in the unit type specific unit file section.
2013-07-01scope: properly implement passive validity checking of PIDs field when ↵Lennart Poettering
creating transient scopes
2013-07-01core: move ControlGroup and Slice properties out of the dbus "Unit" interfaceLennart Poettering
Slice/ControlGroup only really makes sense for unit types which actually have cgroups attached to them, hence move them out of the generic Unit interface and into the specific unit type interfaces. These fields will continue to be part of Unit though, simply because things are a log easier that way. However, regardless how this looks internally we should keep things clean and independent of the specific implementation of the inside.
2013-07-01core: allow setting of the description string for transient unitsLennart Poettering
2013-07-01core: add new "scope" unit type for making a unit of pre-existing processesLennart Poettering
"Scope" units are very much like service units, however with the difference that they are created from pre-existing processes, rather than processes that systemd itself forks off. This means they are generated programmatically via the bus API as transient units rather than from static configuration read from disk. Also, they do not provide execution-time parameters, as at the time systemd adds the processes to the scope unit they already exist and the parameters cannot be applied anymore. The primary benefit of this new unit type is to create arbitrary cgroups for worker-processes forked off an existing service. This commit also adds a a new mode to "systemd-run" to run the specified processes in a scope rather then a transient service.
2013-07-01snapshot: snapshots are just a special kind of transient units nowLennart Poettering
2013-07-01dbus: expose cgroup properties in introspection everywhereLennart Poettering
2013-07-01service: correct service bus introspection for timeoutsLennart Poettering
2013-07-01cgroup: implicitly add units to GC queue when their cgroups run emptyLennart Poettering
2013-07-01cgroup: readd proper cgroup empty trackingLennart Poettering
2013-06-28main: fix loading of default targetLennart Poettering
2013-06-28core: add transient unitsLennart Poettering
Transient units can be created via the bus API. They are configured via the method call parameters rather than on-disk files. They are subject to normal GC. Transient units currently may only be created for services (however, we will extend this), and currently only ExecStart= and the cgroup parameters can be configured (also to be extended). Transient units require a unique name, that previously had no configuration file on disk. A tool systemd-run is added that makes use of this functionality to run arbitrary command lines as transient services: $ systemd-run /bin/ping www.heise.de Will cause systemd to create a new transient service and run ping in it.
2013-06-28dbus: fix minor memory leak when sending job change signalsLennart Poettering
2013-06-28unit: make sure the dropins we write are high-priorityLennart Poettering
2013-06-27dbus: hookup runtime property changes for mouns, services, sockets, swaps tooLennart Poettering
2013-06-27dbus: make DeviceAllow=/DevicePolicy= writableLennart Poettering
2013-06-27dbus: make more cgroup attributes runtime settableLennart Poettering
2013-06-27dbus: add infrastructure for changing multiple properties at once on units ↵Lennart Poettering
and hook some cgroup attributes up to it This introduces two bus calls to make runtime changes to selected bus properties, optionally with persistence. This currently hooks this up only for three cgroup atributes, but this brings the infrastructure to add more changable attributes. This allows setting multiple attributes at once, and takes an array rather than a dictionary of properties, in order to implement simple resetting of lists using the same approach as when they are sourced from unit files. This means, that list properties are appended to by this call, unless they are first reset via assigning the empty list.
2013-06-27core: general cgroup reworkLennart Poettering
Replace the very generic cgroup hookup with a much simpler one. With this change only the high-level cgroup settings remain, the ability to set arbitrary cgroup attributes is removed, so is support for adding units to arbitrary cgroup controllers or setting arbitrary paths for them (especially paths that are different for the various controllers). This also introduces a new -.slice root slice, that is the parent of system.slice and friends. This enables easy admin configuration of root-level cgrouo properties. This replaces DeviceDeny= by DevicePolicy=, and implicitly adds in /dev/null, /dev/zero and friends if DeviceAllow= is used (unless this is turned off by DevicePolicy=).
2013-06-27core: don't do runaway fork()s if we hit a segfault from our segfault handlerLennart Poettering
2013-06-26killall: do not use alloca() in argument listZbigniew Jędrzejewski-Szmek
It is not allowed.
2013-06-20core: only attempt to connect to a session bus if one likely exists.Auke Kok
2013-06-20manager: add DefaultEnvironment optionUmut Tezduyar
This complements existing functionality of setting variables through 'systemctl set-environment', the kernel command line, and through normal environment variables for systemd in session mode.
2013-06-20logind: add infrastructure to keep track of machines, and move to slicesLennart Poettering
- This changes all logind cgroup objects to use slice objects rather than fixed croup locations. - logind can now collect minimal information about running VMs/containers. As fixed cgroup locations can no longer be used we need an entity that keeps track of machine cgroups in whatever slice they might be located. Since logind already keeps track of users, sessions and seats this is a trivial addition. - nspawn will now register with logind and pass various bits of metadata along. A new option "--slice=" has been added to place the container in a specific slice. - loginctl gained commands to list, introspect and terminate machines. - user.slice and machine.slice will now be pulled in by logind.service, since only logind.service requires this slice.