50f48ad37aad99c54de4db34b07c3825cdedcf41 |
|
10-Feb-2016 |
Daniel Mack <daniel@zonque.org> |
cgroup: remove support for NetClass= directive
Support for net_cls.class_id through the NetClass= configuration directive
has been added in v227 in preparation for a per-unit packet filter mechanism.
However, it turns out the kernel people have decided to deprecate the net_cls
and net_prio controllers in v2. Tejun provides a comprehensive justification
for this in his commit, which has landed during the merge window for kernel
v4.5:
https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=bd1060a1d671
As we're aiming for full support for the v2 cgroup hierarchy, we can no
longer support this feature. Userspace tool such as nftables are moving over
to setting rules that are specific to the full cgroup path of a task, which
obsoletes these controllers anyway.
This commit removes support for tweaking details in the net_cls controller,
but keeps the NetClass= directive around for legacy compatibility reasons. |
b26fa1a2fbcfee7d03b0c8fd15ec3aa64ae70b9f |
|
10-Feb-2016 |
Daniel Mack <daniel@zonque.org> |
tree-wide: remove Emacs lines from all files
This should be handled fine now by .dir-locals.el, so need to carry that
stuff in every file. |
f0469b8c4abbeee9ca69678245cd08314adc24c0 |
|
28-Jan-2016 |
Lennart Poettering <lennart@poettering.net> |
core: when determining system state, don't bother with JOB_TRY_RESTART
When we determine the current system state we check whether units like emergency.target are running or a job that
results in them being run is queued. However, this is not the case for JOB_TRY_RESTART, since that's a NOP if the unit
has not been running before. Hence, don't bother with checking for that job type. |
d9814c76ec35e53a6b6448c0f522da0c71907c81 |
|
14-Jan-2016 |
Evgeny Vereshchagin <evvers@ya.ru> |
core: fix memory leak on reload
==1== HEAP SUMMARY:
==1== in use at exit: 61,728 bytes in 22 blocks
==1== total heap usage: 258,122 allocs, 258,100 frees, 78,219,628
bytes allocated
==1==
==1== 16 bytes in 1 blocks are definitely lost in loss record 1 of 6
==1== at 0x4C2BBCF: malloc (vg_replace_malloc.c:299)
==1== by 0x1E350E: memdup (alloc-util.c:34)
==1== by 0x135AFB: memdup_multiply (alloc-util.h:74)
==1== by 0x140F97: manager_set_default_rlimits (manager.c:2929)
==1== by 0x1303DA: manager_set_defaults (main.c:737)
==1== by 0x133A02: main (main.c:1718)
==1==
==1== 272 bytes in 17 blocks are definitely lost in loss record 2 of 6
==1== at 0x4C2BBCF: malloc (vg_replace_malloc.c:299)
==1== by 0x1E350E: memdup (alloc-util.c:34)
==1== by 0x135AFB: memdup_multiply (alloc-util.h:74)
==1== by 0x140F97: manager_set_default_rlimits (manager.c:2929)
==1== by 0x1303DA: manager_set_defaults (main.c:737)
==1== by 0x13480D: main (main.c:1828)
==1==
==1== LEAK SUMMARY:
==1== definitely lost: 288 bytes in 18 blocks
==1== indirectly lost: 0 bytes in 0 blocks
==1== possibly lost: 0 bytes in 0 blocks
==1== still reachable: 61,440 bytes in 4 blocks
==1== suppressed: 0 bytes in 0 blocks
==1== Reachable blocks (those to which a pointer was found) are not
shown.
==1== To see them, rerun with: --leak-check=full --show-leak-kinds=all |
b3267152783d5784c45010615045d4e8ee459da2 |
|
13-Jan-2016 |
Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> |
tree-wide: check if errno is greater than zero (2)
Compare errno with zero in a way that tells gcc that
(if the condition is true) errno is positive. |
37453b3a2a68406c0b3c903e85fb1101fab67a44 |
|
04-Jan-2016 |
Evgeny Vereshchagin <evvers@ya.ru> |
core: don't enable special signals in test mode
Fixes:
$ systemd-analyze verify ...
Failed to open /dev/tty0: Permission denied |
2ce2cce3adf3698fe2ecb06e26f99e0695e046b5 |
|
04-Jan-2016 |
Evgeny Vereshchagin <evvers@ya.ru> |
core: revert "manager: do not set up signals in test mode"
This reverts commit 5aa1054521596c3d268db5f4aff9f2b69647ffc9.
Fixes test-execute
$ sudo make check TESTS=test-execute
...
$ cat test-execute.log
+ test /tmp/test-exec_workingdirectory = /tmp/test-exec_workingdirectory
Test timeout when testing exec-workingdirectory.service
exec-workingdirectory.service
UMask: 0022
WorkingDirectory: /tmp/test-exec_workingdirectory
RootDirectory: /
NonBlocking: no
PrivateTmp: no
PrivateNetwork: no
PrivateDevices: no
ProtectHome: no
ProtectSystem: no
IgnoreSIGPIPE: yes
RuntimeDirectoryMode: 0755
StandardInput: null
StandardOutput: inherit
StandardError: inherit
FAIL test-execute (exit status: 1) |
5aa1054521596c3d268db5f4aff9f2b69647ffc9 |
|
25-Dec-2015 |
Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> |
manager: do not set up signals in test mode
When we are running in test mode, we don't expect any signals.
In fact ^C should end the program. This also avoids permission
issues when running systemd-analyze verify. |
8936a5e34dbfa9274348f3fef99f7c9f9327ddf9 |
|
23-Dec-2015 |
Daniel Mack <daniel@zonque.org> |
core: re-sync bus name list after deserializing during daemon-reload
When the daemon reloads, it doesn not actually give up its DBus connection,
as wrongly stated in an earlier commit. However, even though the bus
connection stays open, the daemon flushes out all its internal state.
Hence, if there is a NameOwnerChanged signal after the flush and before the
deserialization, it cannot be matched against any pending unit.
To fix this, rename bus_list_names() to manager_sync_bus_names() and call
it explicitly at the end of the daemon reload operation. |
4cee3a78bb9190a823ca08808c451daa802622e1 |
|
13-Dec-2015 |
Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> |
manager: log log level changes uniformly
Output the same message when a request to change the log level is
received over dbus and through a signal. From the user point of view
those two operations are very similar and it's easy to think that the
dbus operation didn't work when the expected message is not emitted.
Also "downgrade" the message level to info, since this is a normal
user initiated action. |
76b6f3f68f133ae017e577219244b02e1c361446 |
|
13-Dec-2015 |
Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> |
manager: move status output change debug messages to set function
This way we can only print the debug message when the status actually
changes. We also means we don't print anything when running in --user
mode, where status output is always disabled. |
4afd3348c7506dd1d36305b7bcb9feb8952b9d6b |
|
27-Nov-2015 |
Lennart Poettering <lennart@poettering.net> |
tree-wide: expose "p"-suffix unref calls in public APIs to make gcc cleanup easy
GLIB has recently started to officially support the gcc cleanup
attribute in its public API, hence let's do the same for our APIs.
With this patch we'll define an xyz_unrefp() call for each public
xyz_unref() call, to make it easy to use inside a
__attribute__((cleanup())) expression. Then, all code is ported over to
make use of this.
The new calls are also documented in the man pages, with examples how to
use them (well, I only added docs where the _unref() call itself already
had docs, and the examples, only cover sd_bus_unrefp() and
sd_event_unrefp()).
This also renames sd_lldp_free() to sd_lldp_unref(), since that's how we
tend to call our destructors these days.
Note that this defines no public macro that wraps gcc's attribute and
makes it easier to use. While I think it's our duty in the library to
make our stuff easy to use, I figure it's not our duty to make gcc's own
features easy to use on its own. Most likely, client code which wants to
make use of this should define its own:
#define _cleanup_(function) __attribute__((cleanup(function)))
Or similar, to make the gcc feature easier to use.
Making this logic public has the benefit that we can remove three header
files whose only purpose was to define these functions internally.
See #2008. |
9ded9cd14cc03c67291b10a5c42ce5094ba0912f |
|
16-Nov-2015 |
Lennart Poettering <lennart@poettering.net> |
core: enable TasksMax= for all services by default, and set it to 512
Also, enable TasksAccounting= for all services by default, too.
See:
http://lists.freedesktop.org/archives/systemd-devel/2015-November/035006.html |
0af20ea2ee2af2bcf2258e7a8e1a13181a6a75d6 |
|
13-Nov-2015 |
Lennart Poettering <lennart@poettering.net> |
core: add new DefaultTasksMax= setting for system.conf
This allows initializing the TasksMax= setting of all units by default
to some fixed value, instead of leaving it at infinity as before. |
df0060346ae326bf3c21140ddb3f0ffa519e2e7f |
|
12-Nov-2015 |
Evgeny Vereshchagin <evvers@ya.ru> |
core: use SD_EVENT_PRIORITY_NORMAL-n instead on -n |
53f18416690939479ff9bd4d4339107791061fd9 |
|
12-Nov-2015 |
Lennart Poettering <lennart@poettering.net> |
core: unify code that warns about jobs we fail to enqueue
This allows us to shorten our code a bit. |
4bd29fe5cec9d744a4e39240c76b85d999bd2cf7 |
|
12-Nov-2015 |
Lennart Poettering <lennart@poettering.net> |
core: drop "override" flag when building transactions
Now that we don't have RequiresOverridable= and RequisiteOverridable=
dependencies anymore, we can get rid of tracking the "override" boolean
for jobs in the job engine, as it serves no purpose anymore.
While we are at it, fix some error messages we print when invoking
functions that take the override parameter. |
9ff1a6f1d61d4569920d5b75c88cf1c2ad9adaae |
|
10-Nov-2015 |
Lennart Poettering <lennart@poettering.net> |
core: change type of distribute_fds() prototype to return void
We can't handle errors of thisc all sanely anyway, and we never actually
return any errors from the unit type that implements the call. Hence,
let's make this void, in order to simplify things. |
ba64af90ecf48f7653a04bf3af1291385c9a69b8 |
|
10-Nov-2015 |
Lennart Poettering <lennart@poettering.net> |
core: change return value of the unit's enumerate() call to void
We cannot handle enumeration failures in a sensible way, hence let's try
hard to continue without making such failures fatal, and log about it
with precise error messages. |
ad231c7787f6f74c10b81faf7a6896f2c214a3ee |
|
05-Nov-2015 |
Vito Caputo <vito.caputo@coreos.com> |
core: still make progress when throttling the manager loop
Don't simply continue after sleeping, it potentially puts us in a state
of spinning doing nothing slowly, if the ratelimit_test() keeps
detecting the need for limiting.
Observed in vms after the host had been suspended for a while, on resume
systemd entered a loop of making zero progress spamming the console
with:
[431942.850090] systemd[1]: Looping too fast. Throttling execution a
little.
I see no reason to have a continue here, the intention should be to
throttle execution, not circumvent it altogether. |
a47806fafaec9a52a80e1795ad880b9b5008c4b8 |
|
31-Oct-2015 |
Lennart Poettering <lennart@poettering.net> |
sd-daemon: increase sd_notify() socket buffer size
Let's make sure we don't start blocking on sd_notify() earlier than
necessary, let's bump the socket buffer sizes to 8M.
We already do something similar for our logging socket buffers, hence
apply a similar bump here. |
a1a078eef248cd2aa7bc190d6296255a034acadc |
|
31-Oct-2015 |
Lennart Poettering <lennart@poettering.net> |
core: bail our earlier when doing audit
Let's make sure we don't even try to create the audit socket |
97044145b48fa5644ecd23e73bc33980faeabda3 |
|
31-Oct-2015 |
Lennart Poettering <lennart@poettering.net> |
core,nspawn: minor coding style fixes |
96d66d89c9ba3cc936a8d8217370c70292a6abb7 |
|
31-Oct-2015 |
Lennart Poettering <lennart@poettering.net> |
core: constify a few things |
b215b0ede11c0dda90009c8412609d2416150075 |
|
28-Oct-2015 |
David Herrmann <dh.herrmann@gmail.com> |
core: fix priority ordering in notify-handling
Currently, we dispatch NOTIFY messages in a tight loop. Regardless how
much data is incoming, we always dispatch everything that is queued.
This, however, completely breaks priority event-handling of sd-event.
When dispatching one NOTIFY event, another completely different event
might fire, or might be queued by the NOTIFY handling. However, this
event will not get dispatched until all other further NOTIFY messages are
handled. Those might even arrive _after_ the other event fired, and as
such completely break priority ordering of sd-event (which several code
paths rely on).
Break this by never dispatching multiple messages. Just return after each
message that was read and let sd-event handle everything else.
(The patch looks scarier that it is. It basically just drops the for(;;)
loop and re-indents the loop-content.) |
b5efdb8af40ea759a1ea584c1bc44ecc81dd00ce |
|
27-Oct-2015 |
Lennart Poettering <lennart@poettering.net> |
util-lib: split out allocation calls into alloc-util.[ch] |
affb60b1ef0cb48388d23360c6f3b043c50f6b8c |
|
27-Oct-2015 |
Lennart Poettering <lennart@poettering.net> |
util-lib: split out umask-related code to umask-util.h |
8b43440b7ef4b81c69c31de7ff820dc07a780254 |
|
27-Oct-2015 |
Lennart Poettering <lennart@poettering.net> |
util-lib: move string table stuff into its own string-table.[ch] |
8fcde01280adcbd07e8205b91ac52b06305b6208 |
|
27-Oct-2015 |
Lennart Poettering <lennart@poettering.net> |
util-lib: split stat()/statfs()/stavfs() related calls into stat-util.[ch] |
f4f15635ec05293ffcc83a5b39f624bbabbd8fd0 |
|
27-Oct-2015 |
Lennart Poettering <lennart@poettering.net> |
util-lib: move a number of fs operations into fs-util.[ch] |
0d39fa9c69b97a2ceb156053deef69c0866c2b97 |
|
27-Oct-2015 |
Lennart Poettering <lennart@poettering.net> |
util-lib: move more file I/O related calls into fileio.[ch] |
6bedfcbb2970e06a4d3280c8fb62083d252ede73 |
|
27-Oct-2015 |
Lennart Poettering <lennart@poettering.net> |
util-lib: split string parsing related calls from util.[ch] into parse-util.[ch] |
c004493cdefc1f43a3956ca529e8070f8d70be56 |
|
26-Oct-2015 |
Lennart Poettering <lennart@poettering.net> |
util-lib: split out IO related calls to io-util.[ch] |
3ffd4af22052963e7a29431721ee204e634bea75 |
|
25-Oct-2015 |
Lennart Poettering <lennart@poettering.net> |
util-lib: split out fd-related operations into fd-util.[ch]
There are more than enough to deserve their own .c file, hence move them
over. |
07630cea1f3a845c09309f197ac7c4f11edd3b62 |
|
24-Oct-2015 |
Lennart Poettering <lennart@poettering.net> |
util-lib: split our string related calls from util.[ch] into its own file string-util.[ch]
There are more than enough calls doing string manipulations to deserve
its own files, hence do something about it.
This patch also sorts the #include blocks of all files that needed to be
updated, according to the sorting suggestions from CODING_STYLE. Since
pretty much every file needs our string manipulation functions this
effectively means that most files have sorted #include blocks now.
Also touches a few unrelated include files. |
4f5dd3943bef8a04be7e3b838b822bb9a7ad6cb3 |
|
24-Oct-2015 |
Lennart Poettering <lennart@poettering.net> |
util: split out escaping code into escape.[ch]
This really deserves its own file, given how much code this is now. |
ac5b0c13d8023745c0fbdaaa95dcec5b7b21d1e2 |
|
19-Oct-2015 |
Lennart Poettering <lennart@poettering.net> |
tree-wide: add more void casts for various syscall invocations |
74165387ee9bb97f8ab75d0cef0f33096722b183 |
|
13-Oct-2015 |
Thomas Hindoe Paaboel Andersen <phomes@gmail.com> |
manager: remove unused function |
8dd4c05b5495c7ffe0f12ace87e71abe17bd0a0e |
|
06-Oct-2015 |
Lennart Poettering <lennart@poettering.net> |
core: add support for naming file descriptors passed using socket activation
This adds support for naming file descriptors passed using socket
activation. The names are passed in a new $LISTEN_FDNAMES= environment
variable, that matches the existign $LISTEN_FDS= one and contains a
colon-separated list of names.
This also adds support for naming fds submitted to the per-service fd
store using FDNAME= in the sd_notify() message.
This also adds a new FileDescriptorName= setting for socket unit files
to set the name for fds created by socket units.
This also adds a new call sd_listen_fds_with_names(), that is similar to
sd_listen_fds(), but also returns the names of the fds.
systemd-activate gained the new --fdname= switch to specify a name for
testing socket activation.
This is based on #1247 by Maciej Wereski.
Fixes #1247. |
400f1a33cf63ddaa41af5d5b0bcd5be73e0404a6 |
|
29-Sep-2015 |
Lennart Poettering <lennart@poettering.net> |
core: sort includes of manager.[ch] according to CODING_STYLE |
1fc464f6fbecfc5d8ba9f7b98d19e21fb324bfb9 |
|
22-Sep-2015 |
Lennart Poettering <lennart@poettering.net> |
cgtop: underline table header
Let's underline the header line of the table shown by cgtop, how it is
customary for tables. In order to do this, let's introduce new ANSI
underline macros, and clean up the existing ones as side effect. |
ed0d40229bc536c424fad481e56afcaa1d0e38db |
|
22-Sep-2015 |
Lennart Poettering <lennart@poettering.net> |
util: add safe_closedir() similar to safe_fclose() |
32ee7d3309816994a02b3ff000e9734120d71214 |
|
16-Sep-2015 |
Daniel Mack <daniel@zonque.org> |
cgroup: add support for net_cls controllers
Add a new config directive called NetClass= to CGroup enabled units.
Allowed values are positive numbers for fix assignments and "auto" for
picking a free value automatically, for which we need to keep track of
dynamically assigned net class IDs of units. Introduce a hash table for
this, and also record the last ID that was given out, so the allocator
can start its search for the next 'hole' from there. This could
eventually be optimized with something like an irb.
The class IDs up to 65536 are considered reserved and won't be
assigned automatically by systemd. This barrier can be made a config
directive in the future.
Values set in unit files are stored in the CGroupContext of the
unit and considered read-only. The actually assigned number (which
may have been chosen dynamically) is stored in the unit itself and
is guaranteed to remain stable as long as the unit is active.
In the CGroup controller, set the configured CGroup net class to
net_cls.classid. Multiple unit may share the same net class ID,
and those which do are linked together. |
d379d44255469f03994832ab5821bf1b9034f4dc |
|
14-Sep-2015 |
Karel Zak <kzak@redhat.com> |
mount: use libmount to monitor mountinfo & utab
The current implementation directly monitor /proc/self/mountinfo and
/run/mount/utab files. It's really not optimal because utab file is
private libmount stuff without any official guaranteed semantic.
The libmount since v2.26 provides API to monitor mount kernel &
userspace changes and since v2.27 the monitor is usable for
non-root users too.
This patch replaces the current implementation with libmount based
solution.
Signed-off-by: Karel Zak <kzak@redhat.com> |
e7ab4d1ac9f8d99eecd5e2d22eb482a1fb0fbf23 |
|
11-Sep-2015 |
Lennart Poettering <lennart@poettering.net> |
cgroup: unify how we invalidate cgroup controller settings
Let's make sure that we follow the same codepaths when adjusting a
cgroup property via the dbus SetProperty() call, and when we execute the
StartupCPUShares= effect. |
cd72bd8a4650c9e78a04cb7df1cbce697e14e512 |
|
11-Sep-2015 |
Lennart Poettering <lennart@poettering.net> |
core: invalidate idle pipe event source in manager_close_idle_pipe()
In all occasions when this function is called we do so anyway, so let's
move this inside, to make things easier. |
5269eb6b32f662d21638e54bb13171a5b97fe58f |
|
11-Sep-2015 |
Lennart Poettering <lennart@poettering.net> |
core: allocate sets of startup and failed units on-demand
There's a good chance we never needs these sets, hence allocate them
only when needed. |
ece174c5439021e32ebcc858842de9586072c006 |
|
09-Sep-2015 |
Lennart Poettering <lennart@poettering.net> |
tree-wide: drop {} from one-line if blocks
Patch via coccinelle. |
a1e58e8ee1c84b633d6d6d651d5328d4dd4eba5b |
|
09-Sep-2015 |
Lennart Poettering <lennart@poettering.net> |
tree-wide: use coccinelle to patch a lot of code to use mfree()
This replaces this:
free(p);
p = NULL;
by this:
p = mfree(p);
Change generated using coccinelle. Semantic patch is added to the
sources. |
75f86906c52735c98dc0aa7e24b773edb42ee814 |
|
07-Sep-2015 |
Lennart Poettering <lennart@poettering.net> |
basic: rework virtualization detection API
Introduce a proper enum, and don't pass around string ids anymore. This
simplifies things quite a bit, and makes virtualization detection more
similar to architecture detection. |
b3ac818be8d73c97dc4f74ba8bbd2091506df2e6 |
|
04-Sep-2015 |
Lennart Poettering <lennart@poettering.net> |
core: split up manager_get_unit_by_pid()
Let's move the actual cgroup part of it into a new separate function
manager_get_unit_by_pid_cgroup(), and then make
manager_get_unit_by_pid() just a wrapper that also checks the two pid
hashmaps.
Then, let's make sure the various calls that want to deliver events to
the owners of a PID check both hashmaps and the cgroup and deliver the
event to *each* of them. OTOH make sure bus calls like GetUnitByPID()
continue to check the PID hashmaps first and the cgroup only as
fallback. |
fea72cc0336f4d90875cdddc1aa9739dcbb174f5 |
|
04-Sep-2015 |
Lennart Poettering <lennart@poettering.net> |
macro: introduce new PID_TO_PTR macros and make use of them
This adds a new PID_TO_PTR() macro, plus PTR_TO_PID() and makes use of
it wherever we maintain processes in a hash table. Previously we
sometimes used LONG_TO_PTR() and other times ULONG_TO_PTR() for that,
hence let's make this more explicit and clean up things. |
efdb02375beb0a940c3320865572913780b4d7de |
|
01-Sep-2015 |
Lennart Poettering <lennart@poettering.net> |
core: unified cgroup hierarchy support
This patch set adds full support the new unified cgroup hierarchy logic
of modern kernels.
A new kernel command line option "systemd.unified_cgroup_hierarchy=1" is
added. If specified the unified hierarchy is mounted to /sys/fs/cgroup
instead of a tmpfs. No further hierarchies are mounted. The kernel
command line option defaults to off. We can turn it on by default as
soon as the kernel's APIs regarding this are stabilized (but even then
downstream distros might want to turn this off, as this will break any
tools that access cgroupfs directly).
It is possibly to choose for each boot individually whether the unified
or the legacy hierarchy is used. nspawn will by default provide the
legacy hierarchy to containers if the host is using it, and the unified
otherwise. However it is possible to run containers with the unified
hierarchy on a legacy host and vice versa, by setting the
$UNIFIED_CGROUP_HIERARCHY environment variable for nspawn to 1 or 0,
respectively.
The unified hierarchy provides reliable cgroup empty notifications for
the first time, via inotify. To make use of this we maintain one
manager-wide inotify fd, and each cgroup to it.
This patch also removes cg_delete() which is unused now.
On kernel 4.2 only the "memory" controller is compatible with the
unified hierarchy, hence that's the only controller systemd exposes when
booted in unified heirarchy mode.
This introduces a new enum for enumerating supported controllers, plus a
related enum for the mask bits mapping to it. The core is changed to
make use of this everywhere.
This moves PID 1 into a new "init.scope" implicit scope unit in the root
slice. This is necessary since on the unified hierarchy cgroups may
either contain subgroups or processes but not both. PID 1 hence has to
move out of the root cgroup (strictly speaking the root cgroup is the
only one where processes and subgroups are still allowed, but in order
to support containers nicey, we move PID 1 into the new scope in all
cases.) This new unit is also used on legacy hierarchy setups. It's
actually pretty useful on all systems, as it can then be used to filter
journal messages coming from PID 1, and so on.
The root slice ("-.slice") is now implicitly created and started (and
does not require a unit file on disk anymore), since
that's where "init.scope" is located and the slice needs to be started
before the scope can.
To check whether we are in unified or legacy hierarchy mode we use
statfs() on /sys/fs/cgroup. If the .f_type field reports tmpfs we are in
legacy mode, if it reports cgroupfs we are in unified mode.
This patch set carefuly makes sure that cgls and cgtop continue to work
as desired.
When invoking nspawn as a service it will implicitly create two
subcgroups in the cgroup it is using, one to move the nspawn process
into, the other to move the actual container processes into. This is
done because of the requirement that cgroups may either contain
processes or other subgroups. |
ae2a2c53dd059f0f20fa8080f6b67389be3d3e89 |
|
01-Sep-2015 |
Lennart Poettering <lennart@poettering.net> |
manager: don't write first-boot flag file all the time
Instead, remember that we have already written it. |
90990e28c9067b37cd5a8a90ed813a036fdd0bd0 |
|
31-Aug-2015 |
Lennart Poettering <lennart@poettering.net> |
manager: remove ask-password fd from sd_event before closing it
Otherwise we might attempt to remove a non-existing fd from epoll. |
bbc2908635ca3ded9162504683fa126809f0ec14 |
|
06-Aug-2015 |
Daniel Mack <daniel@zonque.org> |
core: dbus: track bus names per unit
Currently, PID1 installs an unfiltered NameOwnerChanged signal match, and
dispatches the signals itself. This does not scale, as right now, PID1
wakes up every time a bus client connects.
To fix this, install individual matches once they are requested by
unit_watch_bus_name(), and remove the watches again through their slot in
unit_unwatch_bus_name().
If the bus is not available during unit_watch_bus_name(), just store
name in the 'watch_bus' hashmap, and let bus_setup_api() do the installing
later. |
dacd6cee76a08331b8c8616c5f30f70ee49aa2f9 |
|
29-Jul-2015 |
Lennart Poettering <lennart@poettering.net> |
tree-wide: port everything over to fflush_and_check()
Some places invoked fflush() directly with their own manual error
checking, let's unify all that by using fflush_and_check().
This also unifies the general error paths of fflush()+rename() file
writers. |
1b09f548c7f303b486b5b1321c06336bff72ada4 |
|
17-Jun-2015 |
Kay Sievers <kay@vrfy.org> |
turn kdbus support into a runtime option
./configure --enable/disable-kdbus can be used to set the default
behavior regarding kdbus.
If no kdbus kernel support is available, dbus-dameon will be used.
With --enable-kdbus, the kernel command line option "kdbus=0" can
be used to disable kdbus.
With --disable-kdbus, the kernel command line option "kdbus=1" is
required to enable kdbus support. |
2a1288ff89322a2f49c79f6d1832c8164c14a05c |
|
10-Jun-2015 |
Lennart Poettering <lennart@poettering.net> |
util: introduce CMSG_FOREACH() macro and make use of it everywhere
It's only marginally shorter then the usual for() loop, but certainly
more readable. |
920b52e4909d9dc812817fd8b82f83ca23a11c91 |
|
08-Jun-2015 |
Thomas Hindoe Paaboel Andersen <phomes@gmail.com> |
tree-wide: remove spurious space |
6517217d49e59938611b6c00965f44d46a255a1d |
|
03-Jun-2015 |
Kay Sievers <kay@vrfy.org> |
kdbus: remove attach_flags_mask module parameter setting |
24882e06c135584f16f31ba8a00fecde8b7f6fad |
|
29-May-2015 |
Lennart Poettering <lennart@poettering.net> |
util: split out signal-util.[ch] from util.[ch]
No functional changes. |
9771b62d8b833e06606178f19f4da2ba802931b5 |
|
21-May-2015 |
Lennart Poettering <lennart@poettering.net> |
manager: fix finish_timestamp calculation
http://lists.freedesktop.org/archives/systemd-devel/2015-May/032100.html |
aad1976ffa25fa6901f72c300b5980ada0ef44c5 |
|
19-May-2015 |
Lennart Poettering <lennart@poettering.net> |
core: don't consider boot-up finished if we are still reloading
http://lists.freedesktop.org/archives/systemd-devel/2015-May/032025.html |
c6497ccb7153af9a1252c48918e380b5134314de |
|
19-May-2015 |
Lennart Poettering <lennart@poettering.net> |
core: when propagating restart requests due to deps, downgrade restart to try-restart
Previously, if a service A depended on a service B via Requires=, and A
was not running and B restarted this would trigger a start of A as well,
since the restart was propagated as restart independently of the state
of A.
This patch ensures that a restart of B would be propagated as a
try-restart to A, thus not changing its state if it isn't up.
http://lists.freedesktop.org/archives/systemd-devel/2015-May/032061.html |
f42348ace7feb2311593b8cf6c876856eecf256a |
|
13-May-2015 |
Cristian Rodríguez <crrodriguez@opensuse.org> |
core: fix memory leak in manager_run_generators()
If systemd is built with GCC address sanitizer or leak sanitizer
the following memory leak ocurs:
May 12 02:02:46 linux.site systemd[326]: =================================================================
May 12 02:02:46 linux.site systemd[326]: ==326==ERROR: LeakSanitizer: detected memory leaks
May 12 02:02:46 linux.site systemd[326]: Direct leak of 101 byte(s) in 3 object(s) allocated from:
May 12 02:02:46 linux.site systemd[326]: #0 0x7fd1f504993f in strdup (/usr/lib64/libasan.so.2+0x6293f)
May 12 02:02:46 linux.site systemd[326]: #1 0x55d6ffac5336 in strv_new_ap src/shared/strv.c:163
May 12 02:02:46 linux.site systemd[326]: #2 0x55d6ffac56a9 in strv_new src/shared/strv.c:185
May 12 02:02:46 linux.site systemd[326]: #3 0x55d6ffa80272 in generator_paths src/shared/path-lookup.c:223
May 12 02:02:46 linux.site systemd[326]: #4 0x55d6ff9bdb0f in manager_run_generators src/core/manager.c:2828
May 12 02:02:46 linux.site systemd[326]: #5 0x55d6ff9b1a10 in manager_startup src/core/manager.c:1121
May 12 02:02:46 linux.site systemd[326]: #6 0x55d6ff9a78e3 in main src/core/main.c:1667
May 12 02:02:46 linux.site systemd[326]: #7 0x7fd1f394e8c4 in __libc_start_main (/lib64/libc.so.6+0x208c4)
May 12 02:02:46 linux.site systemd[326]: Direct leak of 29 byte(s) in 1 object(s) allocated from:
May 12 02:02:46 linux.site systemd[326]: #0 0x7fd1f504993f in strdup (/usr/lib64/libasan.so.2+0x6293f)
May 12 02:02:46 linux.site systemd[326]: #1 0x55d6ffac5288 in strv_new_ap src/shared/strv.c:152
May 12 02:02:46 linux.site systemd[326]: #2 0x55d6ffac56a9 in strv_new src/shared/strv.c:185
May 12 02:02:46 linux.site systemd[326]: #3 0x55d6ffa80272 in generator_paths src/shared/path-lookup.c:223
May 12 02:02:46 linux.site systemd[326]: #4 0x55d6ff9bdb0f in manager_run_generators src/core/manager.c:2828
May 12 02:02:46 linux.site systemd[326]: #5 0x55d6ff9b1a10 in manager_startup src/core/manager.c:1121
May 12 02:02:46 linux.site systemd[326]: #6 0x55d6ff9a78e3 in main src/core/main.c:1667
May 12 02:02:46 linux.site systemd[326]: #7 0x7fd1f394e8c4 in __libc_start_main (/lib64/libc.so.6+0x208c4)
May 12 02:02:46 linux.site systemd[326]: SUMMARY: AddressSanitizer: 130 byte(s) leaked in 4 allocation(s).
There is a leak due to the the use of cleanup_free instead _cleanup_strv_free_ |
34959677900a45aa67f511e828c68167f8a7c816 |
|
12-May-2015 |
Tom Gundersen <teg@jklm.no> |
core: drop redundant logging about notification messages
Before:
May 12 17:11:22 tomegun-x2402 systemd[1]: systemd-udevd.service: Got notification message for unit.
May 12 17:11:22 tomegun-x2402 systemd[1]: systemd-udevd.service: Got notification message from PID 195 (READY=1)
May 12 17:11:22 tomegun-x2402 systemd[1]: systemd-udevd.service: Ggot READY=1
After:
May 12 17:11:22 tomegun-x2402 systemd[1]: systemd-udevd.service: Got notification message from PID 195 (READY=1) |
b2c23da8cea1987a1a329f5a964d3299b7ca7890 |
|
11-May-2015 |
Lennart Poettering <lennart@poettering.net> |
core: rename SystemdRunningAs to ManagerRunningAs
It's primarily just a property of the Manager object after all, and we
try to refer to PID 1 as "manager" instead of "systemd", hence let's to
stick to this here too. |
f2341e0a87cab1558c84c933956e9181d5fb6c52 |
|
11-May-2015 |
Lennart Poettering <lennart@poettering.net> |
core,network: major per-object logging rework
This changes log_unit_info() (and friends) to take a real Unit* object
insted of just a unit name as parameter. The call will now prefix all
logged messages with the unit name, thus allowing the unit name to be
dropped from the various passed romat strings, simplifying invocations
drastically, and unifying log output across messages. Also, UNIT= vs.
USER_UNIT= is now derived from the Manager object attached to the Unit
object, instead of getpid(). This has the benefit of correcting the
field for --test runs.
Also contains a couple of other logging improvements:
- Drops a couple of strerror() invocations in favour of using %m.
- Not only .mount units now warn if a symlinks exist for the mount
point already, .automount units do that too, now.
- A few invocations of log_struct() that didn't actually pass any
additional structured data have been replaced by simpler invocations
of log_unit_info() and friends.
- For structured data a new LOG_UNIT_MESSAGE() macro has been added,
that works like LOG_MESSAGE() but prefixes the message with the unit
name. Similar, there's now LOG_LINK_MESSAGE() and
LOG_NETDEV_MESSAGE().
- For structured data new LOG_UNIT_ID(), LOG_LINK_INTERFACE(),
LOG_NETDEV_INTERFACE() macros have been added that generate the
necessary per object fields. The old log_unit_struct() call has been
removed in favour of these new macros used in raw log_struct()
invocations. In addition to removing one more function call this
allows generated structured log messages that contain two object
fields, as necessary for example for network interfaces that are
joined into another network interface, and whose messages shall be
indexed by both.
- The LOG_ERRNO() macro has been removed, in favour of
log_struct_errno(). The latter has the benefit of ensuring that %m in
format strings is properly resolved to the specified error number.
- A number of logging messages have been converted to use
log_unit_info() instead of log_info()
- The client code in sysv-generator no longer #includes core code from
src/core/.
- log_unit_full_errno() has been removed, log_unit_full() instead takes
an errno now, too.
- log_unit_info(), log_link_info(), log_netdev_info() and friends, now
avoid double evaluation of their parameters |
ff9b60f38bf68eba4a47cabff14547d92e083214 |
|
11-May-2015 |
Torstein Husebø <torstein@huseboe.net> |
treewide: Correct typos and spell plural of bus consistent |
d79acc309327f8c0863bd3da8b93d926a1c93ba1 |
|
06-May-2015 |
David Herrmann <dh.herrmann@gmail.com> |
bus: don't switch to kdbus if not requested
Whenever systemd is re-executed, it tries to create a system bus via
kdbus. If the system did not have kdbus loaded during bootup, but the
module is loaded later on manually, this will cause two system buses
running (kdbus and dbus-daemon in parallel).
This patch makes sure we never try to create kdbus buses if it wasn't
explicitly requested on the command-line. |
7410616cd9dbbec97cf98d75324da5cda2b2f7a2 |
|
06-May-2015 |
Lennart Poettering <lennart@poettering.net> |
core: rework unit name validation and manipulation logic
A variety of changes:
- Make sure all our calls distuingish OOM from other errors if OOM is
not the only error possible.
- Be much stricter when parsing escaped paths, do not accept trailing or
leading escaped slashes.
- Change unit validation to take a bit mask for allowing plain names,
instance names or template names or an combination thereof.
- Refuse manipulating invalid unit name |
1c2e9646e4a1720fc8ad35c705c195ae1a2c5ce0 |
|
30-Apr-2015 |
Lennart Poettering <lennart@poettering.net> |
core: simplify unit type detection logic
Introduce a new call unit_type_supported() and make use of it
everywhere.
Also, drop Manager parameter from per-type supported method prototype. |
cfa9677bd164574600d29a9bf99f9d1f28a7a170 |
|
29-Apr-2015 |
Mantas Mikulėnas <grawity@gmail.com> |
core: fix event source annotations
These looked like a mass-replace gone slightly wrong – two statements
with no { }'s, and no error checking. |
7dfbe2e3fc0215b49d8202a32beb6b1aae08c4e4 |
|
29-Apr-2015 |
Tom Gundersen <teg@jklm.no> |
core: annotate event sources |
007c6337c6ddf2eb1e7db4d9cd00b044d6d8e165 |
|
24-Apr-2015 |
Lennart Poettering <lennart@poettering.net> |
manager: don't fail fatally if we cannot coldplug a unit
It's better to continue as good as we can, than to totally fail. Hence,
let's log about the failure and continue. |
be847e82cf95bf8eb589778df2aa2b3d1d7ae99e |
|
24-Apr-2015 |
Lennart Poettering <lennart@poettering.net> |
Revert "core: do not spawn jobs or touch other units during coldplugging"
This reverts commit 6e392c9c45643d106673c6643ac8bf4e65da13c1.
We really shouldn't invent external state keeping hashmaps, if we can
keep this state in the units themselves. |
288a74cce597f81d3ba01d8a5ca7d2ba5b654b7e |
|
11-Apr-2015 |
Ronny Chevalier <chevalier.ronny@gmail.com> |
shared: add terminal-util.[ch] |
0b452006de98294d1690f045f6ea2f7f6630ec3b |
|
10-Apr-2015 |
Ronny Chevalier <chevalier.ronny@gmail.com> |
shared: add process-util.[ch] |
527b7a421ff3927d4f3f170b1b143452e88ae1dc |
|
07-Apr-2015 |
Lennart Poettering <lennart@poettering.net> |
util: rework cunescape(), improve error handling
Change cunescape() to return a normal error code, so that we can
distuingish OOM errors from parse errors.
This also adds a flags parameter to control whether "relaxed" or normal
parsing shall be done. If set no parse failures are generated, and the
only reason why cunescape() can fail is OOM. |
c6878637502b1717a110a9a7e8bba32a8583fcdf |
|
06-Apr-2015 |
Lennart Poettering <lennart@poettering.net> |
util: rework rm_rf() logic
- Move to its own file rm-rf.c
- Change parameters into a single flags parameter
- Remove "honour sticky" logic, it's unused these days |
031886edfc6e96ab778c241035a8d00fb0de99d3 |
|
16-Mar-2015 |
Jasper St. Pierre <jstpierre@mecheye.net> |
core: Remove explicit Plymouth integration
Even if plymouth is running, it might have not displayed the splash yet,
so we'll see a few lines on fbcon when we should have otherwise had
nothing.
Plymouth integration was added to systemd in commit
6faa11140bf776cdaeb8d22d01816e6e48296971. That same day, Plymouth got
systemd integration [0]. As such, the Plymouth integration has always
been obsolete, and was probably only for older Plymouth's. But I can't
imagine anybody running a Plymouth from 2011 with a systemd from 2015.
Remove the Plymouth/systemd integration, and let Plymouth's code tell
systemd to print the details.
[0] http://cgit.freedesktop.org/plymouth/commit/?id=537c16422cd49f1beeaab1ad39846a00018faec1
Signed-off-by: Jasper St. Pierre <jstpierre@mecheye.net>
Cc: Daniel Drake <dsd@endlessm.com>
Cc: Ray Strode <rstrode@redhat.com> |
cc3bc3e6203e0c615e31b8b68796362e1385f28a |
|
15-Mar-2015 |
Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> |
core: remove useless debug message
Mar 13 19:48:28 adam.happyassassin.net systemd[1]: Collecting (null)
Mar 13 19:48:28 adam.happyassassin.net systemd[1]: Collecting (null)
Mar 13 19:48:28 adam.happyassassin.net systemd[1]: Collecting (null)
Mar 13 19:48:28 adam.happyassassin.net systemd[1]: Collecting (null)
Mar 13 19:48:28 adam.happyassassin.net systemd[1]: Collecting (null)
Mar 13 19:48:28 adam.happyassassin.net systemd[1]: Collecting (null)
Mar 13 19:48:28 adam.happyassassin.net systemd[1]: Collecting (null) |
d6483ba7834b9e63caee929c9d6373b796be1b21 |
|
14-Mar-2015 |
Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> |
core: check asprintf return value
CID #1261729. |
2ae56591b5b25b1ee33e40612f1ae0593218d56c |
|
14-Mar-2015 |
Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> |
core: ignore any issues with setting time on jobs_in_progress_event_source
CID #1237559. |
9fff898181e71ab6389071b5c35b3ab7112b953e |
|
14-Mar-2015 |
Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> |
core: issue error on oom we can do nothing about
CID #1287142. |
6e392c9c45643d106673c6643ac8bf4e65da13c1 |
|
07-Mar-2015 |
Ivan Shapovalov <intelfx100@gmail.com> |
core: do not spawn jobs or touch other units during coldplugging
Because the order of coldplugging is not defined, we can reference a
not-yet-coldplugged unit and read its state while it has not yet been
set to a meaningful value.
This way, already active units may get started again.
We fix this by deferring such actions until all units have been at
least somehow coldplugged.
Fixes https://bugs.freedesktop.org/show_bug.cgi?id=88401 |
03afec3c9aa849ba13161c253b129b834298fd40 |
|
01-Mar-2015 |
Umut Tezduyar Lindskog <umut.tezduyar@axis.com> |
core: downgrade unit type not supported message
Otherwise every daemon reload prints out warnings like:
systemd[1]: Unit type .busname is not supported on this system.
systemd[1]: Unit type .swap is not supported on this system. |
03455c2879699852b691903343e378c28992ff6a |
|
26-Feb-2015 |
Lucas De Marchi <lucas.demarchi@intel.com> |
core: emit changes for NFailedUnits property
By notifying the clients when this property is changed it's possible to
allow "system health monitor" tools to get transitions like
running<->degraded. This is an alternative to send changes on the
SystemState property since the latter is more difficult to derive. |
2eec67acbb00593e414549a7e5b35eb7dd776b1b |
|
23-Feb-2015 |
Thomas Hindoe Paaboel Andersen <phomes@gmail.com> |
remove unused includes
This patch removes includes that are not used. The removals were found with
include-what-you-use which checks if any of the symbols from a header is
in use. |
0a6f50c0afdfc434b492493bd9efab20cbee8623 |
|
12-Feb-2015 |
Thomas Hindoe Paaboel Andersen <phomes@gmail.com> |
include <poll.h> instead of <sys/poll.h>
include-what-you-use automatically does this and it makes finding
unnecessary harder to spot. The only content of poll.h is a include
of sys/poll.h so should be harmless. |
63c372cb9df3bee01e3bf8cd7f96f336bddda846 |
|
03-Feb-2015 |
Lennart Poettering <lennart@poettering.net> |
util: rework strappenda(), and rename it strjoina()
After all it is now much more like strjoin() than strappend(). At the
same time, add support for NULL sentinels, even if they are normally not
necessary. |
d1f6b1b455cd15dec3948267d5fff570d5597309 |
|
28-Jan-2015 |
Lennart Poettering <lennart@poettering.net> |
manager: fix minor typo |
a626df3efd908b6d868d49207905bdd5162e5609 |
|
28-Jan-2015 |
Lennart Poettering <lennart@poettering.net> |
manager: when we immediately reboot due to 7x C-A-D within 2s, mention this on the console too |
2e5c94b9aaefce46835b623e800cfc168995ea3f |
|
28-Jan-2015 |
Lennart Poettering <lennart@poettering.net> |
core: when the user hits Ctrl-Alt-Del more than 7x per 2s, reboot immediately
This should be useful for cases where clean rebooting doesn't work, and
the user wants to hurry up the reboot. |
7079cfeffb6d520f20ddff53fd78467e72e6cc94 |
|
23-Jan-2015 |
Lennart Poettering <lennart@poettering.net> |
importd: when listing transfers, show progress percentage
With this change the pull protocol implementation processes will pass
progress data to importd which then passes this information on via the
bus. We use sd_notify() as generic transport for this communication,
making importd listen to them, while matching the incoming messages to
the right transfer. |
d875aa8ce10b458dc218c0d98f4a82c8904d6d03 |
|
23-Jan-2015 |
Lennart Poettering <lennart@poettering.net> |
core: zero size notify messages are OK |
1fa2f38f0f011010bf57522b42fcc168856a7003 |
|
22-Jan-2015 |
Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> |
Assorted format fixes
Types used for pids and uids in various interfaces are unpredictable.
Too bad. |
90b99192ad5b7674585996e2b801679989f8a8a7 |
|
18-Jan-2015 |
David Herrmann <dh.herrmann@gmail.com> |
core: write kdbus.attach_flags_mask only on real boot
The kernel module system is not namespaced, so no container should ever
modify global options. Make sure we set the kdbus attach_flags_mask only
on a real boot as PID1. |
e801700e9acdde60078eb1d41b41b06369b83541 |
|
12-Jan-2015 |
Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> |
Implement masking and overriding of generators
Sometimes it is necessary to stop a generator from running. Either
because of a bug, or for testing, or some other reason. The only way
to do that would be to rename or chmod the generator binary, which is
inconvenient and does not survive upgrades. Allow masking and
overriding generators similarly to units and other configuration
files.
For the systemd instance, masking would be more common, rather than
overriding generators. For the user instances, it may also be useful
for users to have generators in $XDG_CONFIG_HOME to augment or
override system-wide generators.
Directories are searched according to the usual scheme (/usr/lib,
/usr/local/lib, /run, /etc), and files with the same name in higher
priority directories override files with the same name in lower
priority directories. Empty files and links to /dev/null mask a given
name.
https://bugs.freedesktop.org/show_bug.cgi?id=87230 |
4968105790c65af58d4ab42bffa2a4bedc0be8ee |
|
12-Jan-2015 |
Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> |
Simplify execute_directory()
Remove the optional sepearate opening of the directory,
it would be just too complicated with the change to
multiple directories.
Move the middle of execute_directory() to a seperate
function to make it easier to grok. |
a354329f724d6ce913d2ccffb2be8f3327a67faa |
|
06-Jan-2015 |
Lennart Poettering <lennart@poettering.net> |
core: add new logic for services to store file descriptors in PID 1
With this change it is possible to send file descriptors to PID 1, via
sd_pid_notify_with_fds() which PID 1 will store individually for each
service, and pass via the usual fd passing logic on next invocation.
This is useful for enable daemon reload schemes where daemons serialize
their state to /run, push their fds into PID 1 and terminate, restoring
their state on next start from the data in /run and passed in from PID
1.
The fds are kept by PID 1 as long as no POLLHUP or POLLERR is seen on
them, and the service they belong to are either not dead or failed, or
have a job queued. |
9c3349e23b14db27e7ba45f82cf647899c563ea9 |
|
05-Jan-2015 |
Lennart Poettering <lennart@poettering.net> |
core: rework counting of running jobs
Let's unify the code that counts the running jobs a bit, in order to
make sure we are less likely to miss one.
This is related to this bug:
https://bugs.freedesktop.org/show_bug.cgi?id=87349
However, it probably won't fix it fully, and I cannot reproduce the issue.
The change also adds an explicit assert change when the counter is off. |
a34bf9db5da0fdd6bdb14459e203dbe41ee99614 |
|
19-Dec-2014 |
Lennart Poettering <lennart@poettering.net> |
util: rename ignore_file() to hidden_file()
hidden_file() is a bit more precise, since dot files usually shouldn't
be ignored, but certainly be considered hidden. |
0faacd470dfbd24f4c6504da6f04213aa05f9d19 |
|
15-Dec-2014 |
Lennart Poettering <lennart@poettering.net> |
unit: handle nicely of certain unit types are not supported on specific systems
Containers do not really support .device, .automount or .swap units;
Systems compiled without support for swap do not support .swap units;
Systems without kdbus do not support .busname units.
With this change attempts to start a unsupported unit types will result
in an immediate "unsupported" job result, which is a lot more
descriptive then before. Also, attempts to start device units in
containers will now immediately fail instead of causing jobs to be
enqueued that never go away. |
ee33e53a70c0d3f9d8aeafe4b8fd84a0d5e1d8d9 |
|
11-Dec-2014 |
Torstein Husebø <torstein@huseboe.net> |
core: correct spacing near eol in code comments |
96aad8d15a324d0e956a4e5653a11a67b209b41a |
|
10-Dec-2014 |
Lennart Poettering <lennart@poettering.net> |
sd-bus: move common errors src/shared/bus-errors.h → src/libsystemd/sd-bus/bus-common-errors.h
Stuff in src/shared/ should not use stuff from src/libsystemd/ really. |
e5035a2778b7ed2a8ac901521ed47cf079359e68 |
|
02-Dec-2014 |
Lennart Poettering <lennart@poettering.net> |
manager: log deserialization errors only at LOG_DEBUG level
During upgrades and when transitioning between different systemd
versions in initrd and on the host we have to expect that some
serialization fields are unknown or parse incorrectly. This shouldn't
really be considered an error, hence downgrade the log messages about
it to debug. This way we can still trace it, but it doesn't confuse
users.
This kinda reverts 46849c3f. |
230314d718cb68b328961c9723976e54c17d06f7 |
|
02-Dec-2014 |
Lennart Poettering <lennart@poettering.net> |
core: OOM really shouldn't be considered a deserialization parse failure |
befb6d54948480f836d53d633bef27e3505818c1 |
|
28-Nov-2014 |
Chris Leech <cleech@redhat.com> |
mount: monitor for utab changes with inotify
Parsing the mount table with libmount races against the mount command,
which will handle the actual mounting before updating utab. This means
the poll event on /proc/self/mountinfo can kick of a reparse in systemd
before the utab information is available.
This change adds in an additional event source using inotify to watch
for changes to utab. It only watches for IN_MOVED_TO events, matching
libmount behavior of always overwriting this file using rename(2).
This does add a second pass through the mount table parsing when utab is
updated. |
4a62c710b62a5a3c7a8a278b810b9d5b5a0c8f4f |
|
28-Nov-2014 |
Michal Schmidt <mschmidt@redhat.com> |
treewide: another round of simplifications
Using the same scripts as in f647962d64e "treewide: yet more log_*_errno
+ return simplifications". |
56f64d95763a799ba4475daf44d8e9f72a1bd474 |
|
28-Nov-2014 |
Michal Schmidt <mschmidt@redhat.com> |
treewide: use log_*_errno whenever %m is in the format string
If the format string contains %m, clearly errno must have a meaningful
value, so we might as well use log_*_errno to have ERRNO= logged.
Using:
find . -name '*.[ch]' | xargs sed -r -i -e \
's/log_(debug|info|notice|warning|error|emergency)\((".*%m.*")/log_\1_errno(errno, \2/'
Plus some whitespace, linewrap, and indent adjustments. |
895b3a7b44fe7ca2f260986be2a877ff56a72718 |
|
28-Nov-2014 |
Michal Schmidt <mschmidt@redhat.com> |
core: fix return value in error path after sd_event_add_io() failure
sd_event_add_io() does not set errno, it returns negative errno.
Noticed during log_*_errno conversions. |
23bbb0de4e3f85d9704a5c12a5afa2dfa0159e41 |
|
28-Nov-2014 |
Michal Schmidt <mschmidt@redhat.com> |
treewide: more log_*_errno + return simplifications |
eb56eb9b40950f1edcffdb7313f8de4f8572a6d5 |
|
28-Nov-2014 |
Michal Schmidt <mschmidt@redhat.com> |
treewide: simplify log_*_errno(r,...) immediately followed by "return r" |
c33b329709ebe2755181980a050d02ec7c81ed87 |
|
28-Nov-2014 |
Michal Schmidt <mschmidt@redhat.com> |
treewide: more log_*_errno() conversions, multiline calls
Basically:
find . -name '*.[ch]' | while read f; do perl -i.mmm -e \
'local $/;
local $_=<>;
s/log_(debug|info|notice|warning|error|emergency)\("([^"]*)%s"([^;]*),\s*strerror\(-?([->a-zA-Z_]+)\)\);/log_\1_errno(\4, "\2%m"\3);/gms;print;' \
$f; done
Plus manual indentation fixups. |
da927ba997d68401563b927f92e6e40e021a8e5c |
|
28-Nov-2014 |
Michal Schmidt <mschmidt@redhat.com> |
treewide: no need to negate errno for log_*_errno()
It corrrectly handles both positive and negative errno values. |
0a1beeb64207eaa88ab9236787b1cbc2f704ae14 |
|
28-Nov-2014 |
Michal Schmidt <mschmidt@redhat.com> |
treewide: auto-convert the simple cases to log_*_errno()
As a followup to 086891e5c1 "log: add an "error" parameter to all
low-level logging calls and intrdouce log_error_errno() as log calls
that take error numbers", use sed to convert the simple cases to use
the new macros:
find . -name '*.[ch]' | xargs sed -r -i -e \
's/log_(debug|info|notice|warning|error|emergency)\("(.*)%s"(.*), strerror\(-([a-zA-Z_]+)\)\);/log_\1_errno(-\4, "\2%m"\3);/'
Multi-line log_*() invocations are not covered.
And we also should add log_unit_*_errno(). |
387eba008426fbd8d7400eef8e41fda09f7f3cb3 |
|
28-Nov-2014 |
Lennart Poettering <lennart@poettering.net> |
core: only override kdbus attach mask when running as PID 1 |
e2cc6eca73cd1df8be552d7c23f9ff3d69c06f1e |
|
28-Nov-2014 |
Lennart Poettering <lennart@poettering.net> |
log: fix order of log_unit_struct() to match other logging calls
Also, while we are at it, introduce some syntactic sugar for creating
ERRNO= and MESSAGE= structured logging fields. |
1a29929959fd8f59e19ce60c25d1a1f7d910fac0 |
|
27-Nov-2014 |
Lennart Poettering <lennart@poettering.net> |
kdbus: set kernel attach mask before creating the first bus |
79008bddf679a5e0900369950eb346c9fa687107 |
|
27-Nov-2014 |
Lennart Poettering <lennart@poettering.net> |
log: rearrange log function naming
- Rename log_meta() → log_internal(), to follow naming scheme of most
other log functions that are usually invoked through macros, but never
directly.
- Rename log_info_object() to log_object_info(), simply because the
object should be before any other parameters, to follow OO-style
programming style. |
cb6531bee6e6f66c3a9d85b24fed68fae7fad6ad |
|
26-Nov-2014 |
Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> |
manager: print fatal errors on the console too
When booting in quiet mode, fatal messages would not be shown at all to the user.
https://bugzilla.redhat.com/show_bug.cgi?id=1155468 |
06d8d842e9de8656d9a46926e7ae7ff967b69ef8 |
|
24-Nov-2014 |
Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> |
manager: let manager_free() handle NULLs
This makes the calling code a bit simpler. |
f44b9efcec4594eb8f843325ee3079b44fb8f24a |
|
24-Nov-2014 |
Lukas Nykryn <lnykryn@redhat.com> |
dbus: return non-zero return value in the case that prefix won't match
strv_extend returns 0 in the case of success which means that
else if (bus_track_deserialize_item(&m->deserialized_subscribed, l) == 0)
log_warning("Unknown serialization item '%s'", l);
will be printed when value is added correctly. |
63cc4c3138fd0ce9cc97884373a2dd8959a13ee9 |
|
13-Nov-2014 |
Daniel Mack <daniel@zonque.org> |
sd-bus: sync with kdbus upstream (ABI break)
kdbus has seen a larger update than expected lately, most notably with
kdbusfs, a file system to expose the kdbus control files:
* Each time a file system of this type is mounted, a new kdbus
domain is created.
* The layout inside each mount point is the same as before, except
that domains are not hierarchically nested anymore.
* Domains are therefore also unnamed now.
* Unmounting a kdbusfs will automatically also detroy the
associated domain.
* Hence, the action of creating a kdbus domain is now as
privileged as mounting a filesystem.
* This way, we can get around creating dev nodes for everything,
which is last but not least something that is not limited by
20-bit minor numbers.
The kdbus specific bits in nspawn have all been dropped now, as nspawn
can rely on the container OS to set up its own kdbus domain, simply by
mounting a new instance.
A new set of mounts has been added to mount things *after* the kernel
modules have been loaded. For now, only kdbus is in this set, which is
invoked with mount_setup_late(). |
07aa32e31d82d1239a618e07adedaecd35d96b27 |
|
13-Nov-2014 |
Ronny Chevalier <chevalier.ronny@gmail.com> |
manager: allow test run to catch SIGCHLD events
Otherwise we cannot know when a service exited |
0c2a5d721ece665618614d05049975ad84a9ee4a |
|
08-Nov-2014 |
Ronny Chevalier <chevalier.ronny@gmail.com> |
core: remove unused macro GC_QUEUE_USEC_MAX
It is unused since cf1265e188e876dda906dca0029248a06dc80c33 |
f0e62e89970b8c38eb07a9beebd277ce13a5fcc2 |
|
07-Nov-2014 |
Lennart Poettering <lennart@poettering.net> |
core: unify how we create the notify and private dbus socket
Use the same robust logic of mkdir + unlink of any existing AF_UNIX
socket, ignoring the return value, right before bind(). |
498e87d6b7ef025fef2e089931f355b5cd3c7dad |
|
07-Nov-2014 |
Lennart Poettering <lennart@poettering.net> |
manager: cast mkdir() result to (void) to make sure coverity is quiet
Also simplify the code a bit by moving mkdir to the common path. |
0c3f25e0c1f028d4da9cc5253abf0322230e6835 |
|
05-Nov-2014 |
Colin Guthrie <colin@mageia.org> |
manager: Ensure user's systemd runtime directory exists.
This mirrors code in dbus.c when creating the private socket and
avoids error messages like:
systemd[1353]: bind(/run/user/603/systemd/notify) failed: No such file or directory
systemd[1353]: Failed to fully start up daemon: No such file or directory |
0aa281df2c5f56623abddf25d6bcdb82b641aeb2 |
|
04-Nov-2014 |
Lennart Poettering <lennart@poettering.net> |
audit: improve the audit messages we generate
always pass along comm, as documented by audit. Always set the correct
comm value. |
56dacdbc1ca95cef8bf8c97c0d7af761a71eaab3 |
|
02-Nov-2014 |
Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> |
manager: do not print timing when running in test mode |
7358dc029ab8cb8f9d83eb847389d84f822ccfe8 |
|
31-Oct-2014 |
Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> |
Convert the rest to sd_bus_errnomap
I tried to preserve most errno values, but in some cases they were
inconsistent (different errno values for the same error name) or just
mismatched. |
ebc5788e88eb9e1ebd032bd61507c196142acbab |
|
28-Oct-2014 |
Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> |
manager: print warning on console before reboot
It will be printed even if a prompt is blocking other messages. |
127d5fd1563a74411aaceeadd251f98fd52216d7 |
|
28-Oct-2014 |
Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> |
manager: convert ephemeral to enum
In preparation for subsequent changes. |
e46b13c8c7f48f81d4e09912f2265daaa7f6d27e |
|
28-Oct-2014 |
Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> |
manager: do not print anything while passwords are being queried
https://bugs.freedesktop.org/show_bug.cgi?id=73942 |
fa1b91632c5220e6589007af4cd573ca909f915a |
|
28-Oct-2014 |
Lennart Poettering <lennart@poettering.net> |
core: remove system start timeout logic again
The system start timeout as previously implemented would get confused by
long-running services that are included in the initial system startup
transaction for example by being cron-job-like long-running services
triggered immediately at boot. Such long-running jobs would be subject
to the default 15min timeout, esily triggering it.
Hence, remove this again. In a subsequent commit, introduce per-target
job timeouts instead, that allow us to control these timeouts more
finegrained. |
4dffec1459f50ac9f8f67ccfcb79836b4ed5a50e |
|
24-Oct-2014 |
Lennart Poettering <lennart@poettering.net> |
manager: Linux on hppa has fewer rtsigs, hence avoid using the higher ones there
https://bugs.freedesktop.org/show_bug.cgi?id=84931 |
e4746b57387ffaf8be01c177ed4bbf02c8088341 |
|
21-Oct-2014 |
Ronny Chevalier <chevalier.ronny@gmail.com> |
util: avoid duplication of TIME_T_MAX |
e7bc519620cb7bcdbe2166fc2a446453769d827e |
|
17-Oct-2014 |
Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> |
systemd: try harder to bind to notify socket
Without the socket open we are going to crash and burn. If for
whatever reason we fail during deserialization we will fail when
trying to open the socket. In this case it is better to unlink the old
socket and maybe lose some messages, than to continue without the
notification socket.
Of course this situation should not happen, but we should handle
it as gracefully as possible anyway.
https://bugzilla.redhat.com/show_bug.cgi?id=1099299 |
46849c3fb1d92882ec456fdbf445a175c13fba9c |
|
17-Oct-2014 |
Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> |
systemd: log deserialization errors as warnings
If we failed to parse something that we wrote ourselves,
things are seriously off. This is also likely to lead to
problems futher on. |
aa9f8a30fd7dc7aa3aa2575b75b3f9a0ab3f02db |
|
16-Sep-2014 |
Andreas Henriksson <andreas@fatal.se> |
core: fix resource leak in manager_environment_add
Second error path must free the (potentially) allocated memory in the
first code chunk before returning.
Found by coverity. Fixes: CID#1237750 |
d5099efc47d4e6ac60816b5381a5f607ab03f06e |
|
15-Sep-2014 |
Michal Schmidt <mschmidt@redhat.com> |
hashmap: introduce hash_ops to make struct Hashmap smaller
It is redundant to store 'hash' and 'compare' function pointers in
struct Hashmap separately. The functions always comprise a pair.
Store a single pointer to struct hash_ops instead.
systemd keeps hundreds of hashmaps, so this saves a little bit of
memory. |
807d0cca2b0daf4cd725298c1b5e062b1126f15b |
|
11-Sep-2014 |
Thomas Hindoe Paaboel Andersen <phomes@gmail.com> |
manager: use correct cleanup function
Close the dir instead of attempt to free it.
Introduced in 874310b7b68c4c0d36ff07397db30a959bb7dae5
Found with coverity. Fixes: CID#996368 |
d81afec1c9bf4b73e3df8996d65ecae95d19b6db |
|
22-Aug-2014 |
Lennart Poettering <lennart@poettering.net> |
core: split up "starting" manager state into "initializing" and "starting"
We'll stay in "initializing" until basic.target has reached, at which
point we will enter "starting".
This is preparation so that we can change the startip timeout to only
apply to the first phase of startup, not the full procedure. |
f07756bfe25c64119704c93a634162d6c88b5c89 |
|
22-Aug-2014 |
Lennart Poettering <lennart@poettering.net> |
core: introduce "poweroff" as new failure action types
Also, change the default action on a system start-up timeout to powering off. |
e12919e8be5c80efe09a57f642bbd2411b313ced |
|
22-Aug-2014 |
Lennart Poettering <lennart@poettering.net> |
core: print 'startup finished' messages even if we log to console |
2928b0a863091f8f291fddb168988711afd389ef |
|
22-Aug-2014 |
Lennart Poettering <lennart@poettering.net> |
core: add support for a configurable system-wide start-up timeout
When this system-wide start-up timeout is hit we execute one of the
failure actions already implemented for services that fail.
This should not only be useful on embedded devices, but also on laptops
which have the power-button reachable when the lid is closed. This
devices, when in a backpack might get powered on by accident due to the
easily reachable power button. We want to make sure that the system
turns itself off if it starts up due this after a while.
When the system manages to fully start-up logind will suspend the
machine by default if the lid is closed. However, in some cases we don't
even get as far as logind, and the boot hangs much earlier, for example
because we ask for a LUKS password that nobody ever enters.
Yeah, this is a real-life problem on my Yoga 13, which has one of those
easily accessible power buttons, even if the device is closed. |
af4ec4309e8f82aad87a8d574785c12f8763d5f8 |
|
21-Aug-2014 |
Lennart Poettering <lennart@poettering.net> |
notify: send STOPPING=1 from our daemons |
70af4d17dafe81acc96f71f4ec06fbea7386bc38 |
|
21-Aug-2014 |
Lennart Poettering <lennart@poettering.net> |
manager: don#t dispatch sd_notify() messages and SIGCHLD multiple times to the same units |
55836941ff642d42403921fa9d5fd2f8376ae722 |
|
21-Aug-2014 |
Lennart Poettering <lennart@poettering.net> |
manager: reuse sockaddr_union instead of redefining our own version of it |
c1dc6153c9426d98ddbcd8b5077f397f18ff1da7 |
|
11-Aug-2014 |
Lennart Poettering <lennart@poettering.net> |
log: never ever log to syslog from PID 1, log to the journal again
We don't support journal-less systems anyway, so let's avoid the
confusion. |
1d749d044bf0e95697b6649e046aab82b0f02aa0 |
|
04-Aug-2014 |
Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> |
tty-ask-password-agent: modernization |
3a43da2832dc5360a638d043f469a6dcbe025582 |
|
29-Jul-2014 |
Kay Sievers <kay@vrfy.org> |
time-util: add and use USEC/NSEC_INFINIY |
1cd974edfd7cd91dcdf321e7202bd220bac50a2d |
|
21-Jul-2014 |
Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> |
systemd: return the first error from manager_startup() |
0d8c31ff7237149b505290652864b4e7e866b2a7 |
|
21-Jul-2014 |
Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> |
test-engine: fix access to unit load path
Also add a bit of debugging output to help diagnose problems,
add missing units, and simplify cppflags.
Move test-engine to normal tests from manual tests, it should now
work without destroying the system. |
6b9732b2bf0499c5e4ea8a9d4f6051d98033f680 |
|
19-Jul-2014 |
Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> |
Be more verbose when bind or listen fails
Also be more verbose in devnode_acl_all(). |
285cd771cbe275265e165bdb5650b92b31eeab47 |
|
15-Jul-2014 |
Umut Tezduyar Lindskog <umut.tezduyar@axis.com> |
core: fix oneshot service resource control
Oneshot services's cgroup is removed when the service
exits. An assert is hit otherwise. |
e26807239bd65bc17535a53cd540f38600e7ef24 |
|
07-Jul-2014 |
Lennart Poettering <lennart@poettering.net> |
firstboot: get rid of firstboot generator again, introduce ConditionFirstBoot= instead
As Zbigniew pointed out a new ConditionFirstBoot= appears like the nicer
way to hook in systemd-firstboot.service on first boots (those with /etc
unpopulated), so let's do this, and get rid of the generator again. |
418b9be50018303cde79b423d4701b7fd86ddbdc |
|
07-Jul-2014 |
Lennart Poettering <lennart@poettering.net> |
firstboot: add new component to query basic system settings on first boot, or when creating OS images offline
A new tool "systemd-firstboot" can be used either interactively on boot,
where it will query basic locale, timezone, hostname, root password
information and set it. Or it can be used non-interactively from the
command line when prepareing disk images for booting. When used
non-inertactively the tool can either copy settings from the host, or
take settings on the command line.
$ systemd-firstboot --root=/path/to/my/new/root --copy-locale --copy-root-password --hostname=waldi
The tool will be automatically invoked (interactively) now on first boot
if /etc is found unpopulated.
This also creates the infrastructure for generators to be notified via
an environment variable whether they are running on the first boot, or
not. |
9a0549093332880df47c4218209ce126b8586835 |
|
22-May-2014 |
Lennart Poettering <lennart@poettering.net> |
cgroups: simplify CPUQuota= logic
Only accept cpu quota values in percentages, get rid of period
definition.
It's not clear whether the CFS period controllable per-cgroup even has a
future in the kernel, hence let's simplify all this, hardcode the period
to 100ms and only accept percentage based quota values. |
db785129c9bce9294a118484cbc9bb6935ca34c2 |
|
22-May-2014 |
Lennart Poettering <lennart@poettering.net> |
cgroup: rework startup logic
Introduce a (unsigned long) -1 as "unset" state for cpu shares/block io
weights, and keep the startup unit set around all the time. |
95ae05c0e79868c22b3e8e6fbc53432786876730 |
|
22-May-2014 |
WaLyong Cho <walyong.cho@samsung.com> |
core: add startup resource control option
Similar to CPUShares= and BlockIOWeight= respectively. However only
assign the specified weight during startup. Each control group
attribute is re-assigned as weight by CPUShares=weight and
BlockIOWeight=weight after startup. If not CPUShares= or
BlockIOWeight= be specified, then the attribute is re-assigned to each
default attribute value. (default cpu.shares=1024, blkio.weight=1000)
If only CPUShares=weight or BlockIOWeight=weight be specified, then
that implies StartupCPUShares=weight and StartupBlockIOWeight=weight. |
9bdb98c59451ed090f8d35d470a54710f389ce71 |
|
16-May-2014 |
Lennart Poettering <lennart@poettering.net> |
core: make sure to serialize jobs for all units
Previously we wouldn't serialize jobs for units that themselves have
nothing to serialize.
http://lists.freedesktop.org/archives/systemd-devel/2014-May/019051.html |
12ed81d9c88406234c20e9261ae8c8b992d8bc4d |
|
15-May-2014 |
Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> |
Make systemctl --root look for files in the proper places
Running systemctl enable/disable/set-default/... with the --root
option under strace reveals that it accessed various files and
directories in the main fs, and not underneath the specified root.
This can lead to correct results only when the layout and
configuration in the container are identical, which often is not the
case. Fix this by adding the specified root to all file access
operations.
This patch does not handle some corner cases: symlinks which point
outside of the specified root might be interpreted differently than
they would be by the kernel if the specified root was the real root.
But systemctl does not create such symlinks by itself, and I think
this is enough of a corner case not to be worth the additional
complexity of reimplementing link chasing in systemd.
Also, simplify the code in a few places and remove an hypothetical
memory leak on error. |
b2f8b02ec27dfec9cbd23573f47aba494f2e9b5f |
|
25-Apr-2014 |
Lennart Poettering <lennart@poettering.net> |
core: expose CFS CPU time quota as high-level unit properties |
530a9662aa3d291555e5b3f6eb43199e1b04f63c |
|
26-Mar-2014 |
Kay Sievers <kay@vrfy.org> |
core: do not read system boot timestamps in systemd --user mode
Before:
$ systemd-analyze --user
Startup finished in 2.810s (firmware) + 48ms (loader) + 122ms (userspace) = 122ms
After:
$ systemd-analyze --user
Startup finished in 122ms (userspace) = 122ms |
bd8f585b9996667db89764ece1cacf37672e3223 |
|
24-Mar-2014 |
Lennart Poettering <lennart@poettering.net> |
core: add a setting to globally control the default for timer unit accuracy |
3d94f76c99da13e5603831d0b278f8c8c21bcb02 |
|
24-Mar-2014 |
Lennart Poettering <lennart@poettering.net> |
util: replace close_pipe() with new safe_close_pair()
safe_close_pair() is more like safe_close(), except that it handles
pairs of fds, and doesn't make and misleading allusion, as it works
similarly well for socketpairs() as for pipe()s... |
6a0f1f6d5af7c7300d3db7a0ba2b068f8abd222b |
|
24-Mar-2014 |
Lennart Poettering <lennart@poettering.net> |
sd-event: rework API to support CLOCK_REALTIME_ALARM and CLOCK_BOOTTIME_ALARM, too |
7181dbdb2e3112858d62bdaea4f0ad2ed685ccba |
|
19-Mar-2014 |
Lennart Poettering <lennart@poettering.net> |
core: move notify sockets to /run and $XDG_RUNTIME_DIR
A service with PrivateNetwork= cannot access abstract namespace sockets
of the host anymore, hence let's better not use abstract namespace
sockets for this, since we want to make sure that PrivateNetwork=
is useful and doesn't break sd_notify(). |
03e334a1c7dc8c20c38902aa039440763acc9b17 |
|
18-Mar-2014 |
Lennart Poettering <lennart@poettering.net> |
util: replace close_nointr_nofail() by a more useful safe_close()
safe_close() automatically becomes a NOP when a negative fd is passed,
and returns -1 unconditionally. This makes it easy to write lines like
this:
fd = safe_close(fd);
Which will close an fd if it is open, and reset the fd variable
correctly.
By making use of this new scheme we can drop a > 200 lines of code that
was required to test for non-negative fds or to reset the closed fd
variable afterwards. |
0851062751fe5083326308b9901527fc4b234919 |
|
12-Mar-2014 |
Lennart Poettering <lennart@poettering.net> |
manager: use system state enum where appropriate |
f755e3b74b94296a534033dd6ae04d9506434210 |
|
12-Mar-2014 |
Lennart Poettering <lennart@poettering.net> |
core: introduce system state enum
The system state knows the states starting →
running/degraded/maintenance → stopping, where:
starting = system startup
running = normal operation
degraded = at least one unit is currently in failed state
maintenance = rescue/emergency mode is active or queued
stopping = system shutdown |
b2cdc6664ef6b56e47d38649d69b9943d9f9f5d0 |
|
07-Mar-2014 |
Daniel Mack <zonque@gmail.com> |
manager: flush memory stream before using the buffer
When the manager receives a SIGUSR2 signal, it opens a memory stream
with open_memstream(), uses the returned file handle for logging, and
dumps the logged content with log_dump().
However, the char* buffer is only safe to use after the file handle has
been flushed with fflush, as the man pages states:
When the stream is closed (fclose(3)) or flushed (fflush(3)), the
locations pointed to by ptr and sizeloc are updated to contain,
respectively, a pointer to the buffer and the current size of the
buffer.
These values remain valid only as long as the caller performs no
further output on the stream. If further output is performed, then the
stream must again be flushed before trying to access these variables.
Without that call, dump remains NULL and the daemon crashes in
log_dump(). |
aa62a8936f5983770e90b791083d55107659f7a1 |
|
06-Mar-2014 |
Lennart Poettering <lennart@poettering.net> |
util: add timeout to generator execution |
517d56b1d0f67dcf76710bc1e17b05518b8cabe6 |
|
05-Mar-2014 |
Lennart Poettering <lennart@poettering.net> |
missing: if RLIMIT_RTTIME is not defined by the libc, then we need a new define for the max number of rlimits, too |
e66cf1a3f94fff48a572f6dbd19b43c9bcf7b8c7 |
|
03-Mar-2014 |
Lennart Poettering <lennart@poettering.net> |
core: introduce new RuntimeDirectory= and RuntimeDirectoryMode= unit settings
As discussed on the ML these are useful to manage runtime directories
below /run for services. |
8f8f05a919355095518911135c3d630f4620a9b0 |
|
03-Mar-2014 |
Lennart Poettering <lennart@poettering.net> |
bus: add sd_bus_track object for tracking peers, and port core over to it
This is primarily useful for services that need to track clients which
reference certain objects they maintain, or which explicitly want to
subscribe to certain events. Something like this is done in a large
number of services, and not trivial to do. Hence, let's unify this at
one place.
This also ports over PID 1 to use this to ensure that subscriptions to
job and manager events are correctly tracked. As a side-effect this
makes sure we properly serialize and restore the track list across
daemon reexec/reload, which didn't work correctly before.
This also simplifies how we distribute messages to broadcast to the
direct busses: we only track subscriptions for the API bus and
implicitly assume that all direct busses are subscribed. This should be
a pretty OK simplification since clients connected via direct bus
connections are shortlived anyway. |
151b9b9662a90455262ce575a8a8ae74bf4ff336 |
|
20-Feb-2014 |
Lennart Poettering <lennart@poettering.net> |
api: in constructor function calls, always put the returned object pointer first (or second)
Previously the returned object of constructor functions where sometimes
returned as last, sometimes as first and sometimes as second parameter.
Let's clean this up a bit. Here are the new rules:
1. The object the new object is derived from is put first, if there is any
2. The object we are creating will be returned in the next arguments
3. This is followed by any additional arguments
Rationale:
For functions that operate on an object we always put that object first.
Constructors should probably not be too different in this regard. Also,
if the additional parameters might want to use varargs which suggests to
put them last.
Note that this new scheme only applies to constructor functions, not to
all other functions. We do give a lot of freedom for those.
Note that this commit only changes the order of the new functions we
added, for old ones we accept the wrong order and leave it like that. |
4daf54a851e4fb7ed1a13c3117bba12528fd2c7f |
|
12-Feb-2014 |
Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> |
journald: log provenience of signals |
49888ca9ef9cac69bfc9b6e30e4f8e3376dcae03 |
|
08-Feb-2014 |
Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> |
manager: fix initialization of plymouth socket
I'm not sure why this makes a difference... |
2ba110900aca729f7d511c185b62149c4a28a293 |
|
08-Feb-2014 |
Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> |
core: use automatic cleanup in two functions |
5ba6985b6c8ef85a8bcfeb1b65239c863436e75b |
|
07-Feb-2014 |
Lennart Poettering <lennart@poettering.net> |
core: allow PIDs to be watched by two units at the same time
In some cases it is interesting to map a PID to two units at the same
time. For example, when a user logs in via a getty, which is reexeced to
/sbin/login that binary will be explicitly referenced as main pid of the
getty service, as well as implicitly referenced as part of the session
scope. |
a911bb9ab27ac0eb3bbf4e8b4109e5da9b88eee3 |
|
07-Feb-2014 |
Lennart Poettering <lennart@poettering.net> |
core: watch SIGCHLD more closely to track processes of units with no reliable cgroup empty notifier
When a process dies that we can associate with a specific unit, start
watching all other processes of that unit, so that we can associate
those processes with the unit too.
Also, for service units start doing this as soon as we get the first
SIGCHLD for either control or main process, so that we can follow the
processes of the service from one to the other, as long as process that
remain are processes of the ones we watched that died and got reassigned
to us as parent.
Similar, for scope units start doing this as soon as the scope
controller abandons the unit, and thus management entirely reverts to
systemd. To abandon a unit introduce a new Abandon() scope unit method
call. |
75cb8502dfec0a6a5305fe766d4b6a1a04a43549 |
|
06-Feb-2014 |
Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> |
transaction: print more information about conflicting jobs
Also remove some debug statement that should not have been committed. |
486e99a387adec15738c2822c2df5c813955f433 |
|
01-Feb-2014 |
Kay Sievers <kay@vrfy.org> |
bus: update kdbus.h (ABI break) |
6b02bce75923e2475f2a99447bfcedd280d788f9 |
|
29-Jan-2014 |
Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> |
manager: remove "debugging" "feature" |
e5723c894db1ead8a10ffb1800e53e9064656d7e |
|
29-Jan-2014 |
Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> |
manager: requeue the cylon eye for 5s later when a job finishes
We'd reqeue the next status update very soon after. Change it so that we wait
for full 5s without any job status changes until we print anything. |
8bb310c3c6f5a52f2d483fd8dfb16ca66ecf7a5f |
|
29-Jan-2014 |
Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> |
manager: print ephemeral information about running jobs' timeouts (v2)
This reverts commit 28c758de94bc8ba97b89d9dab3f517cf466978d0
but makes job_coldplug smarter.
In (v1) I changed the job start timestamp to be always set, so the
start time can be reported in the cylon eye message. The bug was that
when deserializing jobs, they would be ignored if their start
timestamp was unset which was synonymous with no timeout. But after
the change, jobs would have a start timestamp set despite having no
timeout. After deserialization they would be considered immediately
expired. Fix this by checking if the timeout is not zero when
considering jobs for expiration. |
28c758de94bc8ba97b89d9dab3f517cf466978d0 |
|
28-Jan-2014 |
Kay Sievers <kay@vrfy.org> |
Revert "manager: print ephemeral information about running jobs' timeouts"
This reverts commit 2cba2e03524ec0922ddc70f933e8a89b7d23b4ec.
It breaks bootup with dracut, the transition to the real rootfs fails. |
cb8ccb2271727fc114ca43104d3333ee4635cc79 |
|
28-Jan-2014 |
Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> |
manager: also turn on output on unit failure |
d450b6f2a9dd8a7fb14e9f8f771ddd70de7afc5e |
|
28-Jan-2014 |
Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> |
manager: add systemd.show_status=auto mode
When set to auto, status will shown when the first ephemeral message
is shown (a job has been running for five seconds). Then until the
boot or shutdown ends, status messages will be shown.
No indication about the switch is done: I think it should be clear
for the user that first the cylon eye and the ephemeral messages appear,
and afterwards messages are displayed.
The initial arming of the event source was still wrong, but now should
really be fixed. |
8e33886ec582336564ae11b80023abe93d7599c0 |
|
28-Jan-2014 |
Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> |
Replace mkostemp+unlink with open(O_TMPFILE)
This will only work on Linux >= 3.11, and probably not on all
filesystems. Fallback code is provided. |
fd08a8403f8c4075db95a0a4aec92689897c1e63 |
|
27-Jan-2014 |
Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> |
manager: rearm jobs timer
It would fire just once.
Also fix units from sec to usec as appropriate.
Decrease the switching interval to 1/3 s, so that when the time
remaining is displayed with 1s precision, it doesn't jump by 2s every
once in a while. Also, the system is feels noticably faster when the
status changes couple of times per second instead of every few
seconds. |
2cba2e03524ec0922ddc70f933e8a89b7d23b4ec |
|
27-Jan-2014 |
Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> |
manager: print ephemeral information about running jobs' timeouts
Produces output like:
[ *** ] (1 of 2) A start job is running for slow.service (33s / 1min 30s)
The first nubmer is the time since job start, the second is the job timeout. |
f069efb4710332139ac508180cb8246b02428c17 |
|
12-Jan-2014 |
Lennart Poettering <lennart@poettering.net> |
core: don't allow setting NOTIFY_SOCKET and similar env vars we need ourselves via SetEnvironment bus calls
We just quietly eat them up, so that simple environment importing still
works without error. |
43d03a83766a0d63f535e2afa6aeb6e6acbe83b2 |
|
12-Jan-2014 |
Lennart Poettering <lennart@poettering.net> |
core: clean up environment block for --user instances a bit |
5bf348d77ec35260e2c021ad11d08dca7b92498d |
|
11-Jan-2014 |
Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> |
core: fix unused variable |
a2cc4a6c960c26f62c33c995bc648357d939bd68 |
|
10-Jan-2014 |
Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> |
core: fix lack of notifications after reload |
fcc81ea3616b1108a23c0997331923d052539124 |
|
06-Jan-2014 |
Kay Sievers <kay@vrfy.org> |
core: --user -- move generator directories from /tmp to $XDG_RUNTIME_DIR |
88c59cb3c12b33449e0b8a57a79dd1d418334061 |
|
03-Jan-2014 |
Kay Sievers <kay@vrfy.org> |
bus: always create --user bus when kdbus is active
We set the variable in the unit file for --user, so this check is
always true. |
ccd06097c79218f7d5ea4c21721bbcbc7c467dca |
|
03-Jan-2014 |
Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> |
Use format patterns for usec_t, pid_t, nsec_t, usec_t
It is nicer to predefine patterns using configure time check instead of
using casts everywhere.
Since we do not need to use any flags, include "%" in the format instead
of excluding it like PRI* macros. |
a9244623f785f504f799407b0228dea9655e24cb |
|
03-Jan-2014 |
Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> |
core/manager: print info about interesting signals
Information about signals which are not routinely received by systemd
are printed at info level. This should make it easier to see what is
happening in the system. |
f78e6385dc4cee0a1f399c4c89ebf823c108d447 |
|
26-Dec-2013 |
Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> |
Use enums to make it obvious what boolean params mean
Suggested-by: Russ Allbery <rra@debian.org> |
f2769777c8e8ad32b0b19cd540d2f742bda4457f |
|
26-Dec-2013 |
Lennart Poettering <lennart@poettering.net> |
bus: make system bus kdbus node world-accessible |
be04cbca6c2c03e9f62e8981cb9b5626c118c953 |
|
23-Dec-2013 |
Lennart Poettering <lennart@poettering.net> |
core: when we close the notify fd, we also need to free its event source |
9bf3b53533cdc9b95c921b71da755401f223f765 |
|
22-Dec-2013 |
Lennart Poettering <lennart@poettering.net> |
shared: switch our hash table implementation over to SipHash
SipHash appears to be the new gold standard for hashing smaller strings
for hashtables these days, so let's make use of it. |
d86f9d5285742e959a158e743799506b5339fefc |
|
21-Dec-2013 |
Lennart Poettering <lennart@poettering.net> |
core: pass notify fd across reexecs
That way we the random socket name stays stable across reexec and we
won't lose client messages. |
fa28bc2df724e4aff46d19cb7aa732cc64c71061 |
|
18-Dec-2013 |
Lennart Poettering <lennart@poettering.net> |
core: priorize notification fd processing over notification fd process via sd-event's logic |
d003f514dab2dbf1a66e11800a50aeaf039d036c |
|
17-Dec-2013 |
Lennart Poettering <lennart@poettering.net> |
core: always create /dev/kdbus/ns (and make it private 0700) after setting up the kdbus system bus |
7b77ed8cf36e8eca6017791626044b61ae2d68e7 |
|
13-Dec-2013 |
Lennart Poettering <lennart@poettering.net> |
event: be more conservative when returning errors from event handler callbacks
We really should return errors from event handlers if we have a
continous problem and don't know any other solution. |
9a636ed8096fa44927f182ac3eaef4104866d4a9 |
|
10-Dec-2013 |
Shawn Landden <shawn@churchofgit.com> |
core: epoll and signalfd has been moved into sd event loop |
145b1f799ff6712f333cef92c44218254a1320c5 |
|
10-Dec-2013 |
Shawn Landden <shawn@churchofgit.com> |
core/manager: remove infinite loop |
2b6bf07dd23bb467099d213c97b3875c5e453491 |
|
07-Dec-2013 |
Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> |
Get rid of our reimplementation of basename
The only problem is that libgen.h #defines basename to point to it's
own broken implementation instead of the GNU one. This can be fixed
by #undefining basename. |
a6aa89122d2fa5e811a72200773068c13bfffea2 |
|
03-Dec-2013 |
Lennart Poettering <lennart@poettering.net> |
bus: don't make use of the private bus socket if kdbus is available |
8bf9fcf48853021ac713d7675b89143e4e8b1ce5 |
|
02-Dec-2013 |
Lennart Poettering <lennart@poettering.net> |
core: extra paranoia when deserializing kdbus fd |
626851be97b4332fc0401d754c81ae7bbc0f5dc4 |
|
30-Nov-2013 |
Lennart Poettering <lennart@poettering.net> |
bus: do kdbus only if this is enabled on the configure switch
Since we want to retain the ability to break kernel ←→ userspace ABI
after the next release, let's not make use by default of kdbus, so that
people with future kernels will not suddenly break with current systemd
versions.
kdbus support is left in all builds but must now be explicitly requested
at runtime (for example via setting $DBUS_SESSION_BUS). Via a configure
switch the old behaviour can be restored. In fact, we change autogen.sh
to do this, so that git builds (which run autogen.sh) get kdbus by
default, but tarball builds (which ue the configure defaults) do not get
it, and hence this stays out of the distros by default. |
9bd37b40fac198fee2ff4eabc8793f1a7f2770fe |
|
30-Nov-2013 |
Lennart Poettering <lennart@poettering.net> |
nspawn: set up a kdbus namespace when starting a container |
e3dd987cfc395848256fc6eae637ed0eaf5f1635 |
|
30-Nov-2013 |
Lennart Poettering <lennart@poettering.net> |
core: allocate a kdbus bus for each systemd instance, if we can |
f5f6d0e25574dd63fb605b81fa7767dd71c454db |
|
26-Nov-2013 |
Daniel Buch <boogiewasthere@gmail.com> |
tree-wide usage of %m specifier instead of strerror(errno)
Also for log_error() except where a specific error is specified
e.g. errno ? strerror(errno) : "Some user specified message" |
9670d583d381d4c2c7f4d80de63bee7ad54fef44 |
|
25-Nov-2013 |
Lennart Poettering <lennart@poettering.net> |
swap: always track the current real device node of all swap devices, even when not active
This way, we can avoid executing two /bin/swapon jobs to be dispatched
for the same swap device if it is configured for two different paths.
Previously we were just tracking the device nodes of active swap
devices, which would not allow us to recognize the identity of two swap
devices before they are active.
https://bugs.freedesktop.org/show_bug.cgi?id=69835 |
290837072b136624f1f3d941c7274e4b1b275021 |
|
25-Nov-2013 |
Lennart Poettering <lennart@poettering.net> |
core: set some event source priorities to enforce dispatching order |
752b590500cdfe8e60800c0553bf7ae3ac613ffd |
|
25-Nov-2013 |
Lennart Poettering <lennart@poettering.net> |
core: dispatch run queue only if there's nothing else to do
Always read all external events before we decide what we do next. |
828db5d84afbf4e6e7060b5da170114a5886b339 |
|
24-Nov-2013 |
Kay Sievers <kay@vrfy.org> |
core: set finish_timestamp only after all jobs have finished |
9d5a3757c3e5bc2266053dbadb4a542a6dd5e7b8 |
|
21-Nov-2013 |
Lennart Poettering <lennart@poettering.net> |
manager: always sort environment block, it's prettier |
3772995afa7df42c3a332fb085a27cb5d266b893 |
|
20-Nov-2013 |
Lennart Poettering <lennart@poettering.net> |
manager: don't do plymouth in a container
Given that plymouth listens on an abstract namespace socket and if
CLONE_NEWNET is not used the abstract namespace is shared with the host
we might actually end up send plymouth data to the host. |
718db96199eb307751264e4163555662c9a389fa |
|
20-Nov-2013 |
Lennart Poettering <lennart@poettering.net> |
core: convert PID 1 to libsystemd-bus
This patch converts PID 1 to libsystemd-bus and thus drops the
dependency on libdbus. The only remaining code using libdbus is a test
case that validates our bus marshalling against libdbus' marshalling,
and this dependency can be turned off.
This patch also adds a couple of things to libsystem-bus, that are
necessary to make the port work:
- Synthesizing of "Disconnected" messages when bus connections are
severed.
- Support for attaching multiple vtables for the same interface on the
same path.
This patch also fixes the SetDefaultTarget() and GetDefaultTarget() bus
calls which used an inappropriate signature.
As a side effect we will now generate PropertiesChanged messages which
carry property contents, rather than just invalidation information. |
2f38577f3040eedebfe1ace05d5b5a779a588af1 |
|
14-Nov-2013 |
Olivier Brunel <jjk@jjacky.com> |
Only disable output on console during boot if needed
If there are no more jobs on console, no need/we shouldn't disable output. |
9588bc32096fc8342bfd8b989689717186d7d86e |
|
08-Nov-2013 |
Lennart Poettering <lennart@poettering.net> |
Remove dead code and unexport some calls
"make check-api-unused" informs us about code that is not used anymore
or that is exported but only used internally. Fix these all over the
place. |
f3669545238702f8ffee7b743ca4347b785b558a |
|
06-Nov-2013 |
David Strauss <david@davidstrauss.net> |
Comment spelling fixes. |
df28bc0836ad6a79cb537ad0b463819738088f3e |
|
21-Oct-2013 |
Kay Sievers <kay@vrfy.org> |
build-sys: use -Og instead of -O0 to catch warnings
$ touch src/core/dbus.c; make CFLAGS=-O0
make --no-print-directory all-recursive
Making all in .
CC src/core/libsystemd_core_la-dbus.lo
CCLD libsystemd-core.la
$ touch src/core/dbus.c; make CFLAGS=-Og
make --no-print-directory all-recursive
Making all in .
CC src/core/libsystemd_core_la-dbus.lo
src/core/dbus.c: In function 'init_registered_system_bus':
src/core/dbus.c:798:18: warning: 'id' may be used uninitialized in this function [-Wmaybe-uninitialized]
dbus_free(id);
^
CCLD libsystemd-core.la
-Og Optimize debugging experience. -Og enables optimizations that do
not interfere with debugging. It should be the optimization level of
choice for the standard edit-compile-debug cycle, offering a
reasonable level of optimization while maintaining fast compilation
and a good debugging experience. |
71fda00f320379f5cbee8e118848de98caaa229d |
|
14-Oct-2013 |
Lennart Poettering <lennart@poettering.net> |
list: make our list macros a bit easier to use by not requring type spec on each invocation
We can determine the list entry type via the typeof() gcc construct, and
so we should to make the macros much shorter to use. |
a0a6408e31fef4618e27fafba416b9858f66a8e3 |
|
14-Oct-2013 |
Mantas Mikulėnas <grawity@gmail.com> |
manager: connect to private bus even if $DBUS_SESSION_BUS_ADDRESS is not set
Because that's exactly the kind of situation where the private bus is
necessary. |
51d122af23533b0b8318911c4fc8b128ad8eafb7 |
|
13-Oct-2013 |
Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> |
Introduce _cleanup_fdset_free_ |
bcd8e6d1bd3f434af894faeb400fee0e99445a7f |
|
01-Oct-2013 |
Lennart Poettering <lennart@poettering.net> |
local: fix memory leak when putting together locale settings
Also, we need to use proper strv_env_xyz() calls when putting together
the environment array, since otherwise settings won't be properly
overriden.
And let's get rid of strv_appendf(), is overkill and there was only one
user. |
a57f7e2c828b852eb32fd810dcea041bb2975501 |
|
26-Sep-2013 |
Lennart Poettering <lennart@poettering.net> |
core: rework how we match mount units against each other
Previously to automatically create dependencies between mount units we
matched every mount unit agains all others resulting in O(n^2)
complexity. On setups with large amounts of mount units this might make
things slow.
This change replaces the matching code to use a hashtable that is keyed
by a path prefix, and points to a set of units that require that path to
be around. When a new mount unit is installed it is hence sufficient to
simply look up this set of units via its own file system paths to know
which units to order after itself.
This patch also changes all unit types to only create automatic mount
dependencies via the RequiresMountsFor= logic, and this is exposed to
the outside to make things more transparent.
With this change we still have some O(n) complexities in place when
handling mounts, but that's currently unavoidable due to kernel APIs,
and still substantially better than O(n^2) as before.
https://bugs.freedesktop.org/show_bug.cgi?id=69740 |
c51d84dc09476d9c06b8aac726220bf3c7d62e8d |
|
24-Sep-2013 |
Kay Sievers <kay@vrfy.org> |
support acpi firmware performance data (FPDT)
Prefer firmware-provided performance data over loader-exported ones; if
ACPI data is available, always use it, otherwise try to read the loader
data.
The firmware-provided variables start at the time the first EFI image
is executed and end when the operating system exits the boot services;
the (loader) time calculated in systemd-analyze increases. |
43638332c4236ac2db44b0524ea5ade4f918e602 |
|
17-Sep-2013 |
Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> |
man: add a list of environment variables |
c9d954b27ee125c3c90a6d2951c62eec4abb160b |
|
09-Sep-2013 |
Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> |
run: allow non-absolute paths as command |
e21fea24ae2a7a04f6d5c9d2bbbaf5833d248952 |
|
26-Jul-2013 |
Kay Sievers <kay@vrfy.org> |
rework systemd's own process environment handling/passing
Stop importing non-sensical kernel-exported variables. All
parameters in the kernel command line are exported to the
initial environment of PID1, but suppressed if they are
recognized by kernel built-in code. The EFI booted kernel
will add further kernel-internal things which do not belong
into userspace.
The passed original environ data of the process is not touched
and preserved across re-execution, to allow external reading of
/proc/self/environ for process properties like container*=. |
65cd79f7f574532e5f91d581aaff923c29655bbd |
|
16-Jul-2013 |
Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> |
man: add FILES section to systemd-journald.service(8) |
31a7eb86f18b0466681d6fbe80c148f96c551c80 |
|
16-Jul-2013 |
Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> |
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/ |
71445ae75b0e9954d141e5f0ee97803b406ea332 |
|
10-Jul-2013 |
Lennart Poettering <lennart@poettering.net> |
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. |
6fa4853328e3d78d092172fa54effb7e785d0a85 |
|
10-Jul-2013 |
Lennart Poettering <lennart@poettering.net> |
core: serialize/deserialize bus subscribers |
cf1265e188e876dda906dca0029248a06dc80c33 |
|
02-Jul-2013 |
Lennart Poettering <lennart@poettering.net> |
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. |
ede3a7967560506486e1e25d09ef4e74600851ff |
|
02-Jul-2013 |
Lennart Poettering <lennart@poettering.net> |
core: split out unit bus path unescaping into unit_name_from_dbus_path() |
c2756a68401102786be343712c0c35acbd73d28d |
|
28-Jun-2013 |
Lennart Poettering <lennart@poettering.net> |
core: add transient units
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. |
4ad490007b70e6ac18d3cb04fa2ed92eba1451fa |
|
27-Jun-2013 |
Lennart Poettering <lennart@poettering.net> |
core: general cgroup rework
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=). |
ed002560a1945fb8765c5559c293a19bc9e132d8 |
|
20-Jun-2013 |
Auke Kok <auke-jan.h.kok@intel.com> |
core: only attempt to connect to a session bus if one likely exists. |
97d0e5f83ba4dd713170f802b90149b7325bc992 |
|
20-Jun-2013 |
Umut Tezduyar <umut@tezduyar.com> |
manager: add DefaultEnvironment option
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. |
d9acfb71dbfb6e916b9752593158698b8021b28c |
|
02-Jun-2013 |
Thomas Hindoe Paaboel Andersen <phomes@gmail.com> |
analyze: show unit file loading on plot
This will add another color to the legend called "Loading unit files"
Like the generators it will mark a part of the systemd bar indicating
the time spent while loading unit files. |
518d10e98508ec8181e864924484a2ca994c5d43 |
|
02-Jun-2013 |
Umut Tezduyar <umut@tezduyar.com> |
analyze: show generators on plot |
1058cbf2ad3d62d039f8f0be92d9d37777925a39 |
|
31-May-2013 |
Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> |
systemctl: suggest 'systemctl daemon-reload' without --system
--system is default anyway, and some poor user might type 9
characters without needing to. |
4f8d551ff0177df87fae6cb970471186a422d064 |
|
29-May-2013 |
Zachary Cook <zachcook1991@gmail.com> |
systemd: record efi timestamps after /sys is mounted
This partially reverts commit c3a170f3, which moved
efi_get_boot_timestamps too early in main(), before
/sys is assured to be mounted
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=64371
[tomegun: in particular /sys/firmware/efi/efivars needs to be
mounted, which is not a problem if a systemd-initramfs containing
the correct module is being used. But not everyone uses an
initramfs...] |
f49fd1d57a429d4a05ac86352c017a845f8185b3 |
|
10-May-2013 |
Eelco Dolstra <eelco.dolstra@logicblox.com> |
Start ctrl-alt-del.target irreversibly
This makes ctrl-alt-del reboots more robust, just like "systemctl
reboot". |
31afa0a44c2d7f93d837c840cdbd623982ac165f |
|
26-Apr-2013 |
Lennart Poettering <lennart@poettering.net> |
unit: rework stop pending logic
When a trigger unit wants to know if a stop is queued for it, we should
just check precisely that and do not check whether it is actually
stopped already. This is because we use these checks usually from state
change calls where the state variables are not updated yet.
This change splits unit_pending_inactive() into two calls
unit_inactive_or_pending() and unit_stop_pending(). The former checks
state and pending jobs, the latter only pending jobs. |
c3a170f3d3358135a39ac6eafe66f18aef0bd67d |
|
25-Apr-2013 |
Harald Hoyer <harald@redhat.com> |
systemd: record the timestamps as early as possible
The time for systemd initialization and selinux policy loading
is accounted to the initrd or the kernel, which is wrong.
Instead of:
Startup finished in 5.559s (firmware) + 36ms (loader) + 665ms (kernel) +
975ms (initrd) + 1.410s (userspace) = 8.647s
the more correct output is:
Startup finished in 5.559s (firmware) + 36ms (loader) + 665ms (kernel) +
475ms (initrd) + 1.910s (userspace) = 8.647s |
ef42202ac8ed27e7ff1fc90ef8bc2590046dff25 |
|
24-Apr-2013 |
Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> |
Add set_consume which always takes ownership
Freeing in error path is the common pattern with set_put(). |
7fd1b19bc9e9f5574f2877936b8ac267c7706947 |
|
18-Apr-2013 |
Harald Hoyer <harald@redhat.com> |
move _cleanup_ attribute in front of the type
http://lists.freedesktop.org/archives/systemd-devel/2013-April/010510.html |
44df3e637fdf39b34af841fede9d2edc6172a5cc |
|
17-Apr-2013 |
Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> |
systemd: ignore hw timestamps in containers
They are irrelevant and misleading.
E.g. systemd-analyze:
Startup finished in 6d 4h 15min 32.330s (kernel) + 49ms 914us (userspace) = 6d 4h 15min 32.380s
becomes
Startup finished in 53.735ms (userspace) = 53.735ms
which looks much better :) |
b3680f49e20c51e31c8dea84a11207df7b8f0100 |
|
08-Apr-2013 |
Harald Hoyer <harald@redhat.com> |
Do not serialize environment, when switching root
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 |
b92bea5d2a9481de69bb627a7b442a9f58fca43d |
|
06-Apr-2013 |
Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> |
Use initalization instead of explicit zeroing
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. |
5c0d398dfc4d79df2209515d28cafd9dc129838e |
|
04-Apr-2013 |
Lennart Poettering <lennart@poettering.net> |
util: add a bit of syntactic sugar to run short code fragments with a different umask |
2fa4092c2829dd14e50c430ae2f23551d23c6c1d |
|
04-Apr-2013 |
Lennart Poettering <lennart@poettering.net> |
util: make time formatting a bit smarter
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. |
7989e1f2d79891ff73dea0ede1c98c47b62547db |
|
01-Apr-2013 |
Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> |
Partially revert e62d8c394474
The ~80 chars per line part wasn't well received. |
e62d8c3944745ed276e6d4f33153009860e5cfc5 |
|
31-Mar-2013 |
Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> |
Modernization
Use _cleanup_ and wrap lines to ~80 chars and such. |
c17ec25e4d9bd6c8e8617416f813e25b2ebbafc5 |
|
16-Mar-2013 |
Michal Sekletar <msekleta@redhat.com> |
core: reuse the same /tmp, /var/tmp and inaccessible dir
All Execs within the service, will get mounted the same
/tmp and /var/tmp directories, if service is configured with
PrivateTmp=yes. Temporary directories are cleaned up by service
itself in addition to systemd-tmpfiles. Directory which is mounted
as inaccessible is created at runtime in /run/systemd. |
6282c859bdc6463cb25734dcfd3cf8628d951088 |
|
13-Mar-2013 |
Michal Schmidt <mschmidt@redhat.com> |
util, manager: and mempset() and use it
Just like mempcpy() is almost identical to memcpy() except the useful
return value, so is the relation of mempset() to memset(). |
5052495bbaf318d132024e75295da2f5d721420c |
|
13-Mar-2013 |
Michal Schmidt <mschmidt@redhat.com> |
manager: use more stpcpy() |
5b176ee064d9737fd933dfeb660d015c19649794 |
|
13-Mar-2013 |
Michal Schmidt <mschmidt@redhat.com> |
manager: push back animation timer whenever a job finishes
The running jobs animation is supposed to hide itself when jobs are
progressing sufficiently fast. |
f1324eaa6868f196cccfec839e126ea0046cb6b6 |
|
06-Mar-2013 |
Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> |
manager: remove timer fd explicitly from epoll
Forked processes can keep the old fd alive triggering epoll over and
over again else.
https://bugs.freedesktop.org/show_bug.cgi?id=61697 |
a0b6422689e37ffee37742d027f91af8bacfa78d |
|
04-Mar-2013 |
Michal Schmidt <mschmidt@redhat.com> |
core/manager: fix conditions to start and stop watching running jobs
Harald encountered division by zero in manager_print_jobs_in_progress.
Clearly we had the watch enabled when we shouldn't - there were no
running jobs in m->jobs, only waiting ones. This is either a deadlock,
or maybe some of them would be detected as runnable in the next dispatch
of the run queue. In any case we mustn't crash.
Fix it by starting and stopping the watch based on n_running_jobs
instead of the number of all jobs. |
e970a72e94413d9011d510c97eadfdc85c96ccc0 |
|
02-Mar-2013 |
Michal Schmidt <mschmidt@redhat.com> |
manager: turn a superfluous check into assert
The crash that the check prevented has been fixed by commit 9e9e2b7. |
34bf02818d06343982a06a1c33d165190e918d0d |
|
01-Mar-2013 |
Lukas Nykryn <lnykryn@redhat.com> |
manager: print p and then free it |
9e9e2b722cf796b58e959cd174d87ce0ec0bc996 |
|
01-Mar-2013 |
Michal Schmidt <mschmidt@redhat.com> |
core: fix running jobs counters after reload/reexec
All active units will call unit_notify() during coldplug, so we just
make sure we're counting from zero again and get the correct result for
n_on_console.
For n_running_jobs we likewise reset it to zero and then count
the running jobs as we encounter them in deserialization. |
5a82a91a9904059c174232f1a534a160b5f61c0e |
|
01-Mar-2013 |
Harald Hoyer <harald@redhat.com> |
manager: prevent segfault in manager_print_jobs_in_progress() |
03b717a3c4f9348807fc56e7a7d711d72d4ec0cb |
|
28-Feb-2013 |
Michal Schmidt <mschmidt@redhat.com> |
core/manager: print status messages about running jobs
Sometimes the boot gets stuck until a timeout hits. The usual timeouts
are on the order of minutes, so users may lose patience.
Print animated status messages telling the names of units with running
jobs to make it easy to see what systemd is waiting for.
The animation looks cooler with a shorter interval, but 1 s is OK and
should not be too hard on slow serial console users. |
984a2be450abac81474889b8bea4b3fbeddb26c5 |
|
28-Feb-2013 |
Michal Schmidt <mschmidt@redhat.com> |
util, core: add support for ephemeral status lines
Ephemeral status lines do not end with a newline and they expect to be
overwritten by the next printed status line. |
6084e22e57afd588ad205697c0af119d93db1e39 |
|
28-Feb-2013 |
Michal Schmidt <mschmidt@redhat.com> |
core/manager: make a couple of functions static
They're not used outside manager.c anymore. |
25cee55076a7c00c0a584731c2705686cc843210 |
|
28-Feb-2013 |
Michal Schmidt <mschmidt@redhat.com> |
core: add manager_status_printf()
unit_status_printf() checks the state of the manager, not of the unit
as such. Move it to manager.c and rename it to manager_status_printf().
Temporarily keep unit_status_printf as a wrapper macro. |
23ade460e5a118daa575a961b405d089f95e0617 |
|
22-Feb-2013 |
Michal Schmidt <mschmidt@redhat.com> |
core, systemctl: add support for irreversible jobs
Add a new job mode: replace-irreversibly. Jobs enqueued using this mode
cannot be implicitly canceled by later enqueued conflicting jobs.
They can however still be canceled with an explicit "systemctl cancel"
call. |
b872e9a05939bc3e0ac95a042592506a7488dd6f |
|
13-Feb-2013 |
Lennart Poettering <lennart@poettering.net> |
build-sys: make EFI support build-time optional |
4a9fd066f0804a41f3d34676101fb8fdc141ef13 |
|
13-Feb-2013 |
Oleksii Shevchuk <alxchk@gmail.com> |
manager: pass environment over daemon-reexec
Fixes this bug:
alxchk > systemctl --user set-environment A=B
alxchk > systemctl --user show-environment | grep ^A=
A=B
alxchk > systemctl --user daemon-reexec
alxchk > systemctl --user show-environment | grep ^A=
alxchk > |
8b55b8c4e7fce5e05dcfd783a37fb843d1bf1868 |
|
11-Feb-2013 |
Lennart Poettering <lennart@poettering.net> |
manager: clean environment before passing it on to others |
7ad94c716d6403233d04c4d37cb14df958c9b65d |
|
07-Feb-2013 |
Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> |
systemd: raise level of message about lookup paths
This can be pretty important for the user, and is not trivial
to figure out in all cases.
Also show failing path in error messages. |
874310b7b68c4c0d36ff07397db30a959bb7dae5 |
|
07-Feb-2013 |
Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> |
systemd: do not remove empty paths from unit lookup path
The ability to start a new unit with 'systemctl start ...' should not
depend on whether there are other units in the directory. Previously,
an additional 'systemctl daemon-reload' would be necessary to tell
systemd to update the list of unit lookup paths. |
c3e31c7ba1d29c9b967035a6d697820114e1c087 |
|
23-Jan-2013 |
Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> |
Replace autoconf int max test with simple define |
28137202027b07fec5c270c1b1ef12ebaf35d58d |
|
22-Jan-2013 |
Eelco Dolstra <eelco.dolstra@logicblox.com> |
Fix some typos |
2e3d069236777cd62f755a02f4a239306b4ad21a |
|
19-Jan-2013 |
Lennart Poettering <lennart@poettering.net> |
core: if the bootloader supports it, determine firmware and boot loader delay
This allows us to print simple performance data of all parts of the boot now:
- firmware
- boot loader
- kernel
- initrd
- userspace
This only works for bootloaders which support passing TSC data via EFI
variables. As of now that's only gummiboot. |
d6a195a3c373f67632cb98d6e6e14f974ef062f9 |
|
18-Jan-2013 |
Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> |
build-sys: add autoconf macro to pick macro for x32 compatibility |
cae0c5e042c04b33b93a6a9af355f7304f75a45c |
|
08-Jan-2013 |
Lennart Poettering <lennart@poettering.net> |
core: properly initialize kernel timestamp |
66870f90dec9b5bf4ad76f9757fafce703560a67 |
|
06-Jan-2013 |
Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> |
systemd: use unit logging macros |
bd0af84999e6270af3dc9401382be21b76fb0311 |
|
06-Jan-2013 |
Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> |
core/manager: modernize style |
57cb4adf4ed61ab9eeb7f190f94d700a56bafad0 |
|
22-Dec-2012 |
Lennart Poettering <lennart@poettering.net> |
nspawn: try to orderly shutdown container when receiving SIGTERM |
01e10de3c2b9c2944bd86b12fab83d1164d0b64a |
|
22-Dec-2012 |
Lennart Poettering <lennart@poettering.net> |
socket: support socket activation of containers |
8a3a1704c7738a49385e1e1a2a5041f50e79f57e |
|
25-Nov-2012 |
Lennart Poettering <lennart@poettering.net> |
manager: fix build on 32bit systems |
8742514c1a1a5bc0f423da9101deb66115e187ff |
|
25-Nov-2012 |
Lennart Poettering <lennart@poettering.net> |
timer: recalculate next elapse for calendar timer units when the system clock is changed |
68b29a9fca915c83b9192790ec61189430cd5de6 |
|
22-Nov-2012 |
Lennart Poettering <lennart@poettering.net> |
manager: introduce watch_init() initializer for watches |
600b704eb0fe4b4fd2901017082254634823f02d |
|
18-Oct-2012 |
Lennart Poettering <lennart@poettering.net> |
manager: connect SIGRTMIN+24 to terminating --user instances |
1ca6783f5ea3755bd83e723f529c2eda512c7fed |
|
13-Oct-2012 |
Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> |
log: introduce a macro to format message id
The MESSAGE_ID=... stanza will appear in countless number of places.
It is just too long to write it out in full each time.
Incidentally, this also fixes a typo of MESSSAGE is three places. |
c1165f822cd9f8c3467b5f825ce933ab8374b361 |
|
02-Oct-2012 |
Lennart Poettering <lennart@poettering.net> |
audit: turn the audit fd into a static variable
As audit is pretty much just a special kind of logging we should treat
it similar, and manage the audit fd in a static variable.
This simplifies the audit fd sharing with the SELinux access checking
code quite a bit. |
67445f4e22ad924394acdd4fd49e6f238244a5ca |
|
18-Sep-2012 |
Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> |
core: move ManagerRunningAs to shared
Note: I did s/MANAGER/SYSTEMD/ everywhere, even though it makes the
patch quite verbose. Nevertheless, keeping MANAGER prefix in some
places, and SYSTEMD prefix in others would just lead to confusion down
the road. Better to rip off the band-aid now. |
c3090674833c8bd34fbdb0e743f1c47d85dd14fb |
|
18-Sep-2012 |
Lennart Poettering <lennart@poettering.net> |
selinux: use existing library calls for audit data |
c9999773927020a011f1d14ea03ae41431217b89 |
|
17-Sep-2012 |
Lennart Poettering <lennart@poettering.net> |
main: newer kernels return EINVAL if we invoke reboot() in a container lacking perms, deal with it |
7ceba241344b2126e5e9cb46929dbbb591f04c49 |
|
13-Sep-2012 |
Lennart Poettering <lennart@poettering.net> |
manager: fix the build |
915b375388231ed97cad2929ab948756bfc77c42 |
|
13-Sep-2012 |
Lennart Poettering <lennart@poettering.net> |
manager: extend performance measurement interface to include firmware/loader times
This only adds the fields to the D-Bus interfaces but doesn't fill them
in with anything useful yet. Gummiboot exposes the necessary bits of
information to use however and as soon as I get my fingers on a proper
UEFI laptop I'll hook up the remaining bits.
Since we want to stabilize the D-Bus interface soon and include it in
the stability promise we should get the last fixes in, hence this change
now. |
81270860a5b8c6794f0c7bac8becfdd0c41a9385 |
|
04-Sep-2012 |
Lennart Poettering <lennart@poettering.net> |
journal: suppress structured messages if they'd go to the console |
877d54e9b09e093c2102f519a84e2a52637ae035 |
|
04-Sep-2012 |
Lennart Poettering <lennart@poettering.net> |
journal: generate structured journal messages for a number of events |
0d0f0c50d3a1d90f03972a6abb82e6413daaa583 |
|
26-Jul-2012 |
Shawn Landden <shawnlandden@gmail.com> |
log.h: new log_oom() -> int -ENOMEM, use it
also a number of minor fixups and bug fixes: spelling, oom errors
that didn't print errors, not properly forwarding error codes,
few more consistency issues, et cetera |
669241a076108e0483d7d8475beaa506106d077e |
|
25-Jul-2012 |
Shawn Landden <shawnlandden@gmail.com> |
use "Out of memory." consistantly (or with "\n")
glibc/glib both use "out of memory" consistantly so maybe we should
consider that instead of this.
Eliminates one string out of a number of binaries. Also fixes extra newline
in udev/scsi_id |
31f92a7df427593532d221dd715e2e0a5b6f3a96 |
|
19-Jul-2012 |
Lennart Poettering <lennart@poettering.net> |
manager: use a private notify sockets in containers to avoid problems with shared abstract socket namespaces |
6b78f9b4354010f8af2fe48c783ffd52b2db8f57 |
|
18-Jul-2012 |
Lennart Poettering <lennart@poettering.net> |
unit: don't serialize job state, only unit state across switch-root |
b7def684941808600c344f0be7a2b9fcdda97e0f |
|
13-Jul-2012 |
Lennart Poettering <lennart@poettering.net> |
util: rename join() to strjoin()
This is to match strappend() and the other string related functions. |
5f73969991fa765f2826975c0fc5e47438b5e9ea |
|
10-Jul-2012 |
Lennart Poettering <lennart@poettering.net> |
unit-name: remove unit_name_is_valid_no_type() and move unit_name_is_valid() to unit-name.h |
26a1efdf61b462d0fff440a558a96f5cd184920c |
|
02-Jul-2012 |
Lennart Poettering <lennart@poettering.net> |
core: mention if we are run from an initial RAM disk |
29252e9e5bad3b0bcfc45d9bc761aee4b0ece1da |
|
02-Jul-2012 |
Lennart Poettering <lennart@poettering.net> |
manager: turn notify socket into abstract namespace socket again
sd_notify() should work for daemons that chroot() as part of their
initilization, hence it's a good idea to use an abstract namespace
socket which is not affected by chroot. |
33c5fae93976505df343b842727f93910ad510c6 |
|
29-Jun-2012 |
Lennart Poettering <lennart@poettering.net> |
manager: serialize/deserialize job counters across reexec/reload |
af6da548aa14c57da7f17b3a1f2211efdb811d19 |
|
26-Jun-2012 |
Lennart Poettering <lennart@poettering.net> |
core: make systemd.confirm_spawn=1 actually work
This adds a timeout if the TTY cannot be acquired and makes sure we
always output the question to the console, never to the TTY of the
respective service. |
d2e54fae5ca7a0f71b5ac8b356a589ff0a09ea0a |
|
31-May-2012 |
Kay Sievers <kay@vrfy.org> |
mkdir: append _label to all mkdir() calls that explicitly set the selinux context |
07719a21b6425d378b36bb8d7f47ad5ec5296d28 |
|
23-May-2012 |
Lennart Poettering <lennart@poettering.net> |
manager: rework generator logic
Previously generated units were always placed at the end of the search
path. With this change there will be three unit dirs instead of one, to
place generated entries at the beginning, in the middle and at the end
of the search path:
beginning: for units that need to override all configuration, regardless
of user or vendor. Example use: system-update-generator uses this to
temporarily redirect default.target.
middle: for units that need to override vendor configuration, but not
vendor configuration. Example use: /etc/fstab should override vendor
supplied configuration (think /tmp), but should not override native user
configuration.
end: does not override anything but is available as well. Possible usage
might be to convert D-Bus bus service files to native units but allowing
vendor supplied native units to win. |
c93ff2e913a6da516c83c0d3f8df73004acc6c8b |
|
21-May-2012 |
Frederic Crozat <fcrozat@suse.com> |
main: allow system wide limits for services |
f38ed060600d124a68332694ab497c344bd8e089 |
|
21-May-2012 |
Harald Hoyer <harald@redhat.com> |
manager: only serialize the timestamps for the initramfs if in_initrd() |
80fbf05e75b75b7dd342ec844275efae90c479ec |
|
21-May-2012 |
Michal Schmidt <mschmidt@redhat.com> |
dbus-unit: always load the unit before handling a message for it
We need to be able to show the properties even of inactive units.
systemctl loads the unit before getting its properties, but this is racy
as the garbage collector may kick in right after the loading.
Fix it by always loading the unit before handling a message for it.
https://bugzilla.redhat.com/show_bug.cgi?id=814966#c6 |
664f88a7e653918942b858e3f387be2ebc9ebf03 |
|
09-May-2012 |
Lennart Poettering <lennart@poettering.net> |
manager: introduce SwitchRoot bus call for initrd/main transition |
9eb977db5b89b44f254ab40c1876a76b7d7ea2d0 |
|
08-May-2012 |
Kay Sievers <kay@vrfy.org> |
util: split-out path-util.[ch] |
e0209d83e7b30153f43b1a633c955f66eb2c2e4a |
|
25-Apr-2012 |
Michal Schmidt <mschmidt@redhat.com> |
core: add NOP jobs, job type collapsing
Two of our current job types are special:
JOB_TRY_RESTART, JOB_RELOAD_OR_START.
They differ from other job types by being sensitive to the unit active state.
They perform some action when the unit is active and some other action
otherwise. This raises a question: when exactly should the unit state be
checked to make the decision?
Currently the unit state is checked when the job becomes runnable. It's more
sensible to check the state immediately when the job is added by the user.
When the user types "systemctl try-restart foo.service", he really intends
to restart the service if it's running right now. If it isn't running right
now, the restart is pointless.
Consider the example (from Bugzilla[1]):
sleep.service takes some time to start.
hello.service has After=sleep.service.
Both services get started. Two jobs will appear:
hello.service/start waiting
sleep.service/start running
Then someone runs "systemctl try-restart hello.service".
Currently the try-restart operation will block and wait for
sleep.service/start to complete.
The correct result is to complete the try-restart operation immediately
with success, because hello.service is not running. The two original
jobs must not be disturbed by this.
To fix this we introduce two new concepts:
- a new job type: JOB_NOP
A JOB_NOP job does not do anything to the unit. It does not pull in any
dependencies. It is always immediately runnable. When installed to a unit,
it sits in a special slot (u->nop_job) where it never conflicts with
the installed job (u->job) of a different type. It never merges with jobs
of other types, but it can merge into an already installed JOB_NOP job.
- "collapsing" of job types
When a job of one of the two special types is added, the state of the unit
is checked immediately and the job type changes:
JOB_TRY_RESTART -> JOB_RESTART or JOB_NOP
JOB_RELOAD_OR_START -> JOB_RELOAD or JOB_START
Should a job type JOB_RELOAD_OR_START appear later during job merging, it
collapses immediately afterwards.
Collapsing actually makes some things simpler, because there are now fewer
job types that are allowed in the transaction.
[1] Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=753586 |
f2b6878955b1f77ea1fa87b502b13d5dbefc57f6 |
|
24-Apr-2012 |
Lennart Poettering <lennart@poettering.net> |
service: introduce Type=idle and use it for gettys
Type=idle is much like Type=simple, however between the fork() and the
exec() in the child we wait until PID 1 informs us that no jobs are
left.
This is mostly a cosmetic fix to make gettys appear only after all boot
output is finished and complete.
Note that this does not impact the normal job logic as we do not delay
the completion of any jobs. We just delay the invocation of the actual
binary, and only for services that otherwise would be of Type=simple. |
5273510e9f228a300ec6207d4502f1c6253aed5e |
|
23-Apr-2012 |
Michal Schmidt <mschmidt@redhat.com> |
transaction: cancel jobs non-recursively on isolate
Recursive cancellation of jobs would trigger OnFailure actions of
dependent jobs. This is not desirable when isolating.
Fixes https://bugzilla.redhat.com/show_bug.cgi?id=798328 |
b94fbd30781d7533492cec65bf7d86fa19a1a074 |
|
20-Apr-2012 |
Michal Schmidt <mschmidt@redhat.com> |
transaction: maintain anchor_job
Track which job is the anchor in the transaction. |
75778e21dfeee51036d24501e39ea7398fabe502 |
|
20-Apr-2012 |
Michal Schmidt <mschmidt@redhat.com> |
manager: split transaction.[ch]
manager.c takes care of the main loop, unit management, signal handling, ...
transaction.c computes transactions.
After split:
manager.c: 65 KB
transaction.c: 40 KB |
7527cb527598aaabf0ed9b38a352edb28536392a |
|
20-Apr-2012 |
Michal Schmidt <mschmidt@redhat.com> |
manager: Transaction as an object
This makes it obvious that transactions are short-lived. They are created in
manager_add_job() and destroyed after the application of jobs.
It also prepares for a split of the transaction code to a new source. |
97e7d748d1bf26790fc3b2607885f4ac8c4ecf3a |
|
20-Apr-2012 |
Michal Schmidt <mschmidt@redhat.com> |
job: job_uninstall()
Split the uninstallation of the job from job_free() into a separate function.
Adjust the callers.
job_free() now only works on unlinked and uninstalled jobs. This enforces clear
thinking about job lifetimes. |
121b3b318042b7fd67ac96601971c1c2f9b77be5 |
|
20-Apr-2012 |
Michal Schmidt <mschmidt@redhat.com> |
manager: simplify transaction_abort()
This is equivalent. |
02a3bcc6b4372ca50c0a62b193f9a75b988ffa69 |
|
20-Apr-2012 |
Michal Schmidt <mschmidt@redhat.com> |
job: allow job_free() only on already unlinked jobs
job_free() is IMO too helpful when it unlinks the job from the transaction.
The callers should ensure the job is already unlinked before freeing.
The added assertions check if anyone gets it wrong. |
153bda8f03c670caf137f745350c0215b9be2147 |
|
20-Apr-2012 |
Michal Schmidt <mschmidt@redhat.com> |
manager: fix comment |
b59e246565337d6c6967059dd15a52a15277433e |
|
16-Apr-2012 |
Lennart Poettering <lennart@poettering.net> |
logind: remove redundant entries from logind's default controller lists too |
9156e799a258658cf3f51434708cdb194c13eaa4 |
|
16-Apr-2012 |
Lennart Poettering <lennart@poettering.net> |
manager: remove unavailable/redundant entries from default controllers list |
c757a65b6afb462bde082b5362bbb5a074b5bb7b |
|
13-Apr-2012 |
Lennart Poettering <lennart@poettering.net> |
watchdog: make watchdog dbus properties writable |
44785992c3c32e6abbf9d9345e0d68d579ef165b |
|
13-Apr-2012 |
Lennart Poettering <lennart@poettering.net> |
audit: ignore if we get EPERM
if auditing access is not available, then don't complain about it, in
order to play nice with systems lacking CAP_SYS_AUDIT |
a41b539efce4765c3e7a81ed308610776cc73173 |
|
13-Apr-2012 |
Lennart Poettering <lennart@poettering.net> |
manager: support systems lacking /dev/tty0 |
7ea07dcddafe573c699fc48171b57b912897e7e2 |
|
13-Apr-2012 |
Lennart Poettering <lennart@poettering.net> |
fix a couple of things found with the llvm static analyzer |
5430f7f2bc7330f3088b894166bf3524a067e3d8 |
|
12-Apr-2012 |
Lennart Poettering <lennart@poettering.net> |
relicense to LGPLv2.1 (with exceptions)
We finally got the OK from all contributors with non-trivial commits to
relicense systemd from GPL2+ to LGPL2.1+.
Some udev bits continue to be GPL2+ for now, but we are looking into
relicensing them too, to allow free copy/paste of all code within
systemd.
The bits that used to be MIT continue to be MIT.
The big benefit of the relicensing is that closed source code may now
link against libsystemd-login.so and friends. |
b30e2f4c18ad81b04e4314fd191a5d458553773c |
|
11-Apr-2012 |
Kay Sievers <kay@vrfy.org> |
move libsystemd_core.la sources into core/ |