summaryrefslogtreecommitdiff
path: root/src/core
AgeCommit message (Collapse)Author
2013-04-15core: let's make our log messages proper sentences with full stopsLennart Poettering
2013-04-15core: always create /user and /machine top-level cgroup dirsLennart Poettering
This allows clients to put inotify watches on these trees to watch for state changes, without having to wait until these dirs are created. This introduces the new top-level /machine cgroup dir as canonical location where OS containers and VMs shall be located (as discussed with the libvirt folks).
2013-04-15Fix spelling errors using 'codespell' toolAnatol Pomozov
2013-04-09shutdown: print a nice message before returning to initrdLennart Poettering
2013-04-08machine-id: fix missing initializationsystemd/v201Lennart Poettering
2013-04-08shutdown: print a message when storage is finalizedLennart Poettering
2013-04-08cgroup: clean-upsLennart Poettering
2013-04-08dbus-manager: fix variable type introspectionRonny Chevalier
2013-04-08cgroup: always keep access mode of 'tasks' and 'cgroup.procs' files in ↵Lennart Poettering
cgroup directories in sync
2013-04-08Do not serialize environment, when switching rootHarald Hoyer
When switching root, i.e. LANG can be set to the locale of the initramfs or "C", if it was unset. When systemd deserializes LANG in the real root this would overwrite the setting previously gathered by locale_set(). To reproduce, boot with an initramfs without locale.conf or change /etc/locale.conf to a different language than the initramfs and check a daemon started by systemd: $ tr "$\000" '\n' </proc/$(pidof sshd)/environ | grep LANG LANG=C To prevent that, serialization of environment variables is skipped, when serializing for switching root. https://bugzilla.redhat.com/show_bug.cgi?id=949525
2013-04-05Use _cleanup_ when reading config filesZbigniew Jędrzejewski-Szmek
2013-04-05Add _cleanup_globfree_Zbigniew Jędrzejewski-Szmek
Fixes a memleak in error path in exec_context_load_environment.
2013-04-05Use initalization instead of explicit zeroingZbigniew Jędrzejewski-Szmek
Before, we would initialize many fields twice: first by filling the structure with zeros, and then a second time with the real values. We can let the compiler do the job for us, avoiding one copy. A downside of this patch is that text gets slightly bigger. This is because all zero() calls are effectively inlined: $ size build/.libs/systemd text data bss dec hex filename before 897737 107300 2560 1007597 f5fed build/.libs/systemd after 897873 107300 2560 1007733 f6075 build/.libs/systemd … actually less than 1‰. A few asserts that the parameter is not null had to be removed. I don't think this changes much, because first, it is quite unlikely for the assert to fail, and second, an immediate SEGV is almost as good as an assert.
2013-04-05test-catalog,core/load-dropin: remove unused variablesZbigniew Jędrzejewski-Szmek
2013-04-04util: add a bit of syntactic sugar to run short code fragments with a ↵Lennart Poettering
different umask
2013-04-04util: make time formatting a bit smarterLennart Poettering
Instead of outputting "5h 55s 50ms 3us" we'll now output "5h 55.050003s". Also, while outputting the accuracy is configurable. Basically we now try use "dot notation" for all time values > 1min. For >= 1s we use 's' as unit, otherwise for >= 1ms we use 'ms' as unit, and finally 'us'. This should give reasonably values in most cases.
2013-04-03shared: rework env file readerLennart Poettering
Implement this with a proper state machine, so that newlines and escaped chars can appear in string assignments. This should bring the parser much closer to shell.
2013-04-03util: rename parse_usec() to parse_sec() sinds the default unit is secondsLennart Poettering
Internally we store all time values in usec_t, however parse_usec() actually was used mostly to parse values in seconds (unless explicit units were specified to define a different unit). Hence, be clear about this and name the function about what we pass into it, not what we get out of it.
2013-04-03util: rename write_one_line_file() to write_string_file()Lennart Poettering
You can write much more than just one line with this call (and we frequently do), so let's correct the naming.
2013-04-03core/killall.c: prevent segfault and initialize pidsHarald Hoyer
2013-04-02Replace s/Dropin/DropIn/Zbigniew Jędrzejewski-Szmek
2013-04-01Introspect and monitor dropin configurationOleksii Shevchuk
2013-04-01Add Listen* to dbus propertiesOleksii Shevchuk
sockets.socket - Test Loaded: loaded (/home/alxchk/.config/systemd/user/sockets.socket; static) Active: inactive (dead) Listen: Stream: /tmp/stream1 Stream: @stream4 Stream: [::]:9999 Stream: 127.0.0.2:9996 Stream: [::1]:9996 Datagram: /tmp/stream2 Datagram: @stream5 Datagram: [::]:9998 Datagram: 127.0.0.2:9995 Datagram: [::1]:9995 SequentialPacket: @stream6 SequentialPacket: /tmp/stream3 FIFO: /tmp/fifo1 Special: /dev/input/event9 Netlink: kobject-uevent 0 MessageQueue: /msgqueue1 [zj: - minor cleanups, - free i.listen, - remove sorting, because the order or sockets matters.]
2013-04-02shutdown: correctly wait for processes we killed in the killall spreeLennart Poettering
Previously we simply counted how many processes we killed and expected as many waitpid() calls to succeed. That however is incorrect to do. As we might kill processes that are not our immediate children, and as there might be left-over processes in the waitpid() queue from earlier the we might get more ore less waitpid() events that we expect. Hence: keep precise track of the processes we kill, remove the ones we get waitpid() for, and after each time we get SIGCHLD check if all others still exist. We use getpgid() to check if a PID still exists. This should fix issues with journald not setting journal files offline correctly on shutdown, because we'd too quickly proceed from SIGTERM to SIGKILL because some left-over process was in our waitpid() queue.
2013-04-01core/socket: log errors when starting socket for this socketZbigniew Jędrzejewski-Szmek
When showing an error like 'Socket service not loaded', the error won't show up in the status for the socket, unless it is marked as SYSTEMD_UNIT=*.socket. Marking it as SYSTEMD_UNIT=*.service, when the service is non-existent, is not useful.
2013-04-01Add AllowIsolate=yes to snapshotsOleksii Shevchuk
2013-03-31Partially revert e62d8c394474Zbigniew Jędrzejewski-Szmek
The ~80 chars per line part wasn't well received.
2013-03-31ModernizationZbigniew Jędrzejewski-Szmek
Use _cleanup_ and wrap lines to ~80 chars and such.
2013-03-31nspawn, machine-id-setup: warn if read-only mount call failsZbigniew Jędrzejewski-Szmek
They are not crucial, but they shouldn't fail.
2013-03-31execute: convert secure bits into mask properlyZbigniew Jędrzejewski-Szmek
C.f. http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=5975c725dfd6f7d36f493ab1453fbdbd35c1f0e3
2013-03-31Remove some dead codeZbigniew Jędrzejewski-Szmek
Based on coverity report.
2013-03-30dbus: let's make this const array staticLennart Poettering
2013-03-30killall: print notice what we forcefully KILLKay Sievers
2013-03-29unit: replace remote-fs-setup.target by network-online.targetLennart Poettering
https://bugzilla.redhat.com/show_bug.cgi?id=787314
2013-03-27core: check return value of rm_rf_dangerous and warn if it failsVáclav Pavlín
2013-03-26Simplify the meaning of %sZbigniew Jędrzejewski-Szmek
The rules governing %s where just too complicated. First of all, looking at $SHELL is dangerous. For systemd --system, it usually wouldn't be set. But it could be set if the admin first started a debug shell, let's say /sbin/sash, and then launched systemd from it. This shouldn't influence how daemons are started later on, so is better ignored. Similar reasoning holds for session mode. Some shells set $SHELL, while other set it only when it wasn't set previously (e.g. zsh). This results in fragility that is better avoided by ignoring $SHELL totally. With $SHELL out of the way, simplify things by saying that %s==/bin/sh for root, and the configured shell otherwise. get_shell() is the only caller, so it can be inlined. Fixes one issue seen with 'make check'.
2013-03-27units: automatically order all mount units after network.targetLennart Poettering
Previously it was necessary to pull in remote-fs-pre.target to order the mount units against network.target since the ordering was done transitively via remote-fs-pre.target. As network implementations shouldn't need to know about the specific use-case of network mounts we instead now simply order network.target against all mounts too. This should make it unnecessary for network managing services to import remote-fs-pre.target explicitly, as network.target will now suffice.
2013-03-25units: introduce remote-fs-setup.target to pull in dependencies from remote ↵Lennart Poettering
mounts This introduces remote-fs-setup.target independently of remote-fs-pre.target. The former is only for pulling things in, the latter only for ordering. The new semantics: remote-fs-setup.target: is pulled in automatically by all remote mounts. Shall be used to pull in other units that want to run when at least one remote mount is set up. Is not ordered against the actual mount units, in order to allow activation of its dependencies even 'a posteriori', i.e. when a mount is established outside of systemd and is only picked up by it. remote-fs-pre.target: needs to be pulled in automatically by the implementing service, is otherwise not part of the initial transaction. This is ordered before all remote mount units. A service that wants to be pulled in and run before all remote mounts should hence have: a) WantedBy=remote-fs-setup.target -- so that it is pulled in b) Wants=remote-fs-pre.target + Before=remote-fs-pre.target -- so that it is ordered before the mount point, normally.
2013-03-25units: introduce new timers.target and paths.target to hook timer/path units ↵Lennart Poettering
into for boot
2013-03-25core: ensure LSB Provides are handled correctlyFrederic Crozat
Let's say you have two initscripts, A and B: A contains in its LSB header: Required-Start: C and B contains in its LSB header: Provides: C When systemd is parsing /etc/rc.d/, depending on the file order, you can end up with either: - B is parsed first. An unit "C.service" will be "created" and will be added as additional name to B.service, with unit_add_name. No bug. - A is parsed first. An unit "C.service" is created for the "Required-Start" dependency (it will have no file attached, since nothing provides this dependency yet). Then B is parsed and when trying to handle "Provides: C", unit_add_name is called but will fail, because "C.service" already exists in manager->units. Therefore, a merge should occur for that case.
2013-03-25timer: downgrade time change message to debugMichal Schmidt
The manager already prints "Time has been changed" at level info. It seems too verbose to print the time change message additionally for every waiting timer unit. Downgrade the per-unit message to debug.
2013-03-24service: no need to drop rc. prefix anymoreMiklos Vajna
This reverts commit f5c88ec1330b61787441156de7d764a140774bd2. It is no longer necessary, and adds unnecessary magic.
2013-03-23unit: never retroactively start requisitesLennart Poettering
Requesites are not supposed to be auto-started afterall, they are just checks, so don't try to be smarter here than appropriate. Based on a patch from Michal Schmidt.
2013-03-22exec: Assigning the empty string to CapabilityBoundSet= should drop all capsLennart Poettering
Previously, it would set all caps, but it should drop them all, anything else makes little sense. Also, document that this works as it does, and what to do in order to assign all caps to the bounding set. https://bugzilla.redhat.com/show_bug.cgi?id=914705
2013-03-22main: minor simplificationLennart Poettering
2013-03-22cgroup: minor optimizationLennart Poettering
2013-03-22mount: mount all cgroup controllers in containers, tooLennart Poettering
2013-03-22main: use strv_find() where we canLennart Poettering
2013-03-22main: don't mount cgroup controller unless PID == 1Lennart Poettering
This completes c1dae1b3c9729fb8ab749dd4e2dad07e0fad7ed8 in a way.
2013-03-20Make two functions staticZbigniew Jędrzejewski-Szmek