Commit Graph
9757 Commits
Author SHA1 Message Date
Lennart Poettering 7f0386f62c core: update configuration directive list "systemd --dump-configuration-items" shows 2013-07-19 18:45:11 +02:00
Zbigniew Jędrzejewski-Szmek 6aaa8c2f78 core: add %v specifier 2013-07-19 02:45:49 -04:00
Zbigniew Jędrzejewski-Szmek 52990c2e0e systemd,systemctl: export condition status and show failing condition
$ systemctl --user status hoohoo
hoohoo.service
   Loaded: loaded (/home/zbyszek/.config/systemd/user/hoohoo.service; static)
   Active: inactive (dead)
           start condition failed at Tue 2013-06-25 18:08:42 EDT; 1s ago
           ConditionPathExists=/tmp/hoo was not met

Full information is exported over D-Bus:
  [(condition, trigger, negate, param, state),...]
where state is one of "failed" (<0), "untested" (0), "OK" (>0).
I've decided to use 0 for "untested", because it might be useful to
differentiate different types of failure later on, without breaking
compatibility.

systemctl shows the failing condition, if there was a non-trigger
failing condition, or says "none of the trigger conditions were met",
because there're often many trigger conditions, and they must all
fail for the condition to fail, so printing them all would consume
a lot of space, and bring unnecessary attention to something that is
quite low-level.
2013-07-17 23:41:10 -04:00
Zbigniew Jędrzejewski-Szmek 4b744dfabe systemd: log failed conditions
ConditionPathExists=/tmp/nosuchpath failed for nosuchpath.service.
2013-07-17 23:41:10 -04:00
Lennart Poettering 2042249710 mount: also exclude /usr from unmount at shutdown 2013-07-18 02:32:34 +02:00
Michael Olbrich c961869ac5 service: don't enter a second SIGTERM/SIGKILL cycle if no ExecStopPost= process is defined
It won't help if the main process is still there and there is no new
process to kill.
2013-07-18 02:32:33 +02:00
Harald Hoyer c72aadd185 remove RD_TIMESTAMP import
If you want timing information from the initramfs, use systemd in the
initramfs.
2013-07-17 11:33:07 +02:00
Harald Hoyer 956eaf2b8d remove /run/initramfs/root-fsck logic
dracut uses systemd in the initramfs and does not write these files
anymore.

The state of the root fsck is serialized.
2013-07-17 11:33:07 +02:00
Lennart Poettering 042e33ae3a rpm: add RPM macro for creating tmpfiles entries after package installation 2013-07-16 18:54:03 +02:00
Harald Hoyer 21c72713ae Do not set LANG=C in every child environment.
LANG does not have to be set and setting it to default to the default
does not add any value.
2013-07-16 18:01:40 +02:00
Zbigniew Jędrzejewski-Szmek 7801356442 build-sys: discover the path to kexec during build time
https://bugs.freedesktop.org/show_bug.cgi?id=55248
2013-07-15 23:20:56 -04:00
Zbigniew Jędrzejewski-Szmek 65cd79f7f5 man: add FILES section to systemd-journald.service(8) 2013-07-15 22:20:17 -04:00
Zbigniew Jędrzejewski-Szmek 31a7eb86f1 systemd: do not output status messages once gettys are running
Make Type=idle communication bidirectional: when bootup is finished,
the manager, as before, signals idling Type=idle jobs to continue.
However, if the boot takes too long, idling jobs signal the manager
that they have had enough, wait a tiny bit more, and continue, taking
ownership of the console. The manager, when signalled that Type=idle
jobs are done, makes a note and will not write to the console anymore.

This is a cosmetic issue, but quite noticable, so let's just fix it.

Based on Harald Hoyer's patch.

https://bugs.freedesktop.org/show_bug.cgi?id=54247
http://unix.stackexchange.com/questions/51805/systemd-messages-after-starting-login/
2013-07-15 21:34:57 -04:00
Lukas Nykryn f440e1bb8a unit: check correct variable after strdup 2013-07-12 01:09:34 +02:00
Lennart Poettering b9ec935936 core: simplify drop-in writing logic a bit
let's make use of some format string magic!
2013-07-11 21:29:33 +02:00
Lennart Poettering 665f8316f4 core: when writing drop-in files, name them directly after the property we set
Mapping from "FooBar" to "foo-bar" is unnecessary and makes it hard to
handle many different properties with the same code, hence, let's just
not do it.
2013-07-11 21:03:06 +02:00
Lennart Poettering 8e7076caae cgroup: split out per-device BlockIOWeight= setting into BlockIODeviceWeight=
This way we can nicely map the configuration directive to properties and
back, without requiring two different signatures for the same property.
2013-07-11 20:40:18 +02:00
Lennart Poettering d7bd3de065 cgroup: simplify how instantiated units are mapped to cgroups
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.
2013-07-11 18:49:53 +02:00
Lennart Poettering 8a84192905 cgroup: don't ever try to destroy the cgroup of the root slice
The root slice is after all the root cgroup, so don't attempt to delete
it.
2013-07-11 18:49:52 +02:00
Lennart Poettering be2c1bd2a8 cgroup: don't move systemd into systems.slice when running as --user instance 2013-07-11 18:49:52 +02:00
Lennart Poettering a883394464 core: implicitly create a per-template slice for all instantiated units by default
If no explicit slice is configured for an instantiated unit, create an
implicit one for all instances of the same template.
2013-07-11 18:49:52 +02:00
Shawn Landden f7db7a691c basic SO_REUSEPORT support 2013-07-11 03:09:18 +02:00
Lennart Poettering 8aa7519366 core: grant user@.service instances write access to their own cgroup 2013-07-11 01:56:12 +02:00
Lennart Poettering befb5b6a71 core: rearrange if blocks a bit 2013-07-11 00:48:52 +02:00
Lennart Poettering f6940be782 shutdown: avoid malloc() if we can 2013-07-11 00:35:01 +02:00
Kay Sievers 8577e67245 shutdown: fix /proc/cmdline reading of 'quiet' 2013-07-11 00:13:46 +02:00
Lennart Poettering 66713f77e8 core: uninstall cgroup agent only if we are running outside of a container
Since the cgroupfs is currently not virtualized for containers we
shouldn't reset the hosts agent from the container.
2013-07-10 23:50:28 +02:00
Lennart Poettering 7fb3ee51c1 user-sessions: rely on PID 1 to kill sessions
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-10 23:41:04 +02:00
Lennart Poettering 72673e866a unit: when deserializing cgroup path add it back into cgroup hashmap
Also, properly remove cgroup path from hashmap when freeing unit.
2013-07-10 23:41:03 +02:00
Lennart Poettering b9316fb0f3 unit: save description/slice of transient units to /run
This is necessary so that these properties survive a daemon reload.
2013-07-10 23:41:03 +02:00
Lennart Poettering 71445ae75b core: send out "Reloading" signal before and after doing a full 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-10 23:41:03 +02:00
Lennart Poettering 0c5778a26b scope: don't require an initialized PIDs set when deserializing
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-10 23:41:03 +02:00
Lennart Poettering b170dd803d core: while we are reloading don't suppress bus signals
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-10 23:41:03 +02:00
Lennart Poettering 6fa4853328 core: serialize/deserialize bus subscribers 2013-07-10 23:41:03 +02:00
Lennart Poettering 376dd21dc0 cgroup: downgrade error message when we cannot remove a cgroup to debug
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-10 23:41:03 +02:00
Zbigniew Jędrzejewski-Szmek a8b409dbc9 tests: add tests for string lookup tables
The tests check if the tables have entries for all values
in the enum, and that the entries are unique.
2013-07-05 01:36:16 -04:00
Kay Sievers ec26be514f suppress status message output at shutdown when 'quiet' is given 2013-07-05 00:32:05 +02:00
Kay Sievers ad929bcc27 disable the cgroups release agent when shutting down
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-04 20:31:18 +02:00
Harald Hoyer 1e4fc9b1d8 core/mount.c:mount_dump(): don't segfault, if mount is not mounted anymore
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-04 12:01:15 +02:00
Jason St. John e9c1ea9de8 replace tabs with spaces in various files
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-02 23:06:22 -04:00
Jason St. John e9dd9f9547 man: improve grammar and word formatting in numerous man pages
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-02 23:06:22 -04:00
Lennart Poettering cf1265e188 core: make GC more aggressive
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-02 17:46:57 +02:00
Dave Reisner 294a90cc4a dbus-scope: initialize variable before accessing 2013-07-02 10:44:02 -04:00
Lennart Poettering 06025d9148 core: don't consider a unit's cgroup empty if only a subcgroup runs empty 2013-07-02 16:24:13 +02:00
Lennart Poettering 8aec412ff6 machined: sync to /run after job completed 2013-07-02 15:49:27 +02:00
Lennart Poettering fb6becb443 logind: port over to use scopes+slices for all cgroup stuff
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-02 01:48:55 +02:00
Lennart Poettering 358712f3de scope: fix state string table 2013-07-02 01:48:55 +02:00
Lennart Poettering 8bcca7e201 scope: implement reset-failed command 2013-07-02 01:48:55 +02:00
Lennart Poettering ede3a79675 core: split out unit bus path unescaping into unit_name_from_dbus_path() 2013-07-02 01:48:55 +02:00
Lennart Poettering cc23f9f174 scope: make TimeoutStopUSec= settable for transient units 2013-07-02 01:48:55 +02:00