1
0
mirror of https://github.com/systemd/systemd.git synced 2024-11-08 11:27:32 +03:00
Commit Graph

12461 Commits

Author SHA1 Message Date
Lennart Poettering
751090cc8a sd-bus: when connecting to a container, don't fall back to host bus
We should never connect to the host bus as fallback if connecting to a
container failed via one method. Otherwise connecting to a dbus1
container will always result in a connection to the host.
2015-09-01 20:40:24 +02:00
Lennart Poettering
80b0d3e311 sd-bus: when connecting to a kdbus container bus pass error up
We rely on the correct error used when opening the kdbus device node,
hence let's make sure we pass it up from the namespaced child process to
the process which actually wants to connect.
2015-09-01 20:40:24 +02:00
Lennart Poettering
a07c35c3e6 machined: introduce a ptsname_namespace() call and make use of it
The call is like ptsname() but does not assume the pty path was
accessible in the local namespace. It uses the same internal ioctl
though.
2015-09-01 20:40:24 +02:00
Lennart Poettering
395745ba53 machined: call unlockpt() in container, not host
It makes assumptions about the pty path, hence better call it in the
container namespace rather than the host.
2015-09-01 20:40:24 +02:00
Tom Gundersen
fc94c32605 Merge pull request #1111 from poettering/more-cgroup-fixes
More cgroup fixes
2015-09-01 19:48:04 +02:00
Lennart Poettering
332929623a Merge pull request #1099 from filbranden/joincontrollers2
Getting rid of FOREACH_WORD_QUOTED in config_parse_join_controllers
2015-09-01 19:10:45 +02:00
Lennart Poettering
d06673212e core: rework when we kill with which signal
When the user wants to explicitly send our own PID a signal, then do so.

Don't follow up SIGABRT with a SIGHUP if send_sighup is enabled. At that
point the process should have segfaulted, hence there's no point in
following up with a SIGHUP.

Send only termination signals to ourselves, never KILL or ABRT signals.
2015-09-01 18:54:08 +02:00
Lennart Poettering
102ef9829e core: don't allow changing the slice of a unit while it is active 2015-09-01 18:53:29 +02:00
Lennart Poettering
b821a397c0 unit: small clean-ups
Always say when we ignore errors. Cast calls whose return value we
knowingly ingore to (void). Use "bool" where we actually mean a boolean,
even if we return it as an int later on.
2015-09-01 18:52:15 +02:00
Lennart Poettering
5fe8876b32 core: when looking for the unit for a process, look at the PID hashmaps first
It's cheaper that going to cgroupfs, and also usually the better choice
since it's not racy and can map PIDs even if they were moved to a
different unit.
2015-09-01 18:47:46 +02:00
Evgeny Vereshchagin
8c7db2fb21 run: enable interactive authorization 2015-09-01 16:43:08 +00:00
Lennart Poettering
6fd6650737 cgroup: the root cgroup is always populated 2015-09-01 18:37:01 +02:00
Lennart Poettering
6f883237f1 cgroup: drop "ignore_self" argument from cg_is_empty()
In all cases where the function (or cg_is_empty_recursive()) ignoring
the calling process is actually wrong, as a process keeps a cgroup busy
regardless if its the current one or another. Hence, let's simplify
things and drop the "ignore_self" parameter.
2015-09-01 18:37:01 +02:00
Lennart Poettering
e155a0aa04 cgroup: small cleanups and coding style fixes
A number of simplications and adjustments to brings things closer to our
coding style.
2015-09-01 18:37:01 +02:00
Lennart Poettering
f01327adb7 cgroup: don't allow hidden cgroups
We really should care for all cgroups, and not allow hidden ones.
2015-09-01 18:37:01 +02:00
Lennart Poettering
9b84c7f959 cgroup: never migrate kernel threads out of the root cgroup
It won't work anyway.
2015-09-01 18:37:01 +02:00
David Herrmann
3a487d41d7 Merge pull request #1108 from phomes/dont-shadow-globals
tree-wide: do not shadow the global var timezone
2015-09-01 18:33:54 +02:00
Thomas Hindoe Paaboel Andersen
64d6c22905 tree-wide: do not shadow the global var timezone 2015-09-01 18:20:13 +02:00
Lennart Poettering
e9db43d591 units: enable waiting for unit termination in certain cases
The legacy cgroup hierarchy does not support reliable empty
notifications in containers and if there are left-over subgroups in a
cgroup. This makes it hard to correctly wait for them running empty, and
thus we previously disabled this logic entirely.

With this change we explicitly check for the container case, and whether
the unit is a "delegation" unit (i.e. one where programs may create
their own subgroups). If we are neither in a container, nor operating on
a delegation unit cgroup empty notifications become reliable and thus we
start waiting for the empty notifications again.

This doesn't really fix the general problem around cgroup notifications
but reduces the effect around it.

(This also reorders #include lines by their focus, as suggsted in
CODING_STYLE. We have to add "virt.h", so let's do that at the right
place.)

Also see #317.
2015-09-01 17:44:17 +02:00
Filipe Brandenburger
1592ec21b3 core: add OOM check in config_parse_join_controllers 2015-09-01 08:35:54 -07:00
Filipe Brandenburger
3875c85bae core: Log parse errors in config_parse_join_controllers 2015-09-01 08:35:54 -07:00
Lennart Poettering
957c3cf97c unit: suppress unnecessary cgroup empty check
Rework the "service is good" check, to only check the cgroup state if we
really need to instead of always.

This allows us to suppress going to the cgroupfs for an empty check for
the majority of services.

No functional change.
2015-09-01 17:20:56 +02:00
Lennart Poettering
ae2a2c53dd manager: don't write first-boot flag file all the time
Instead, remember that we have already written it.
2015-09-01 17:20:56 +02:00
Lennart Poettering
fc60d8153c sd-login: improve error handling
let's return ENXIO whenever we don't know something rather than ENOENT.

ENOENT suggests this was really about a file or directory, while ENXIO
is a more generic "not found" indicator.
2015-09-01 17:20:56 +02:00
Lennart Poettering
9660efb82f cgtop: properly show "/" instead of empty string in cgroup list 2015-09-01 17:20:56 +02:00
Lennart Poettering
bd9f2fc2d0 set: return NULL on destructors
Like we do it pretty much everywhere else.
2015-09-01 17:20:56 +02:00
Lennart Poettering
3f010fe095 Merge pull request #1066 from ssahani/tunnel
networkd: add support for tunnel encap limit
2015-09-01 12:02:10 +02:00
Martin Pitt
7577e5181a logind: Listen to WMI hotkeys to catch SW_DOCK state/events
On Dell and HP laptops the dock state/events (SW_DOCK) come from the "{Dell,HP}
WMI hotkeys" input devices. Tag them as power-switch so that login actually
considers them. Use a general match in case this affects other vendors, too.

Thanks to Andreas Schultz for debugging this!

https://launchpad.net/bugs/1450009
2015-09-01 10:51:15 +02:00
Filipe Brandenburger
d4ebeb4fb3 core: Use extract_first_word in config_parse_join_controllers
Related to the TODO item to replace FOREACH_WORD_QUOTED with it.

Tested by setting `JoinControllers=cpu,cpuacct,memory net_cls,blkio' in
/etc/systemd/system.conf, rebooting the system with the patched binaries
and checking that the desired setup was created by inspecting the
entries under /sys/fs/cgroup.

No regressions observed in test cases.
2015-08-31 17:33:35 -07:00
David Herrmann
a58a91b6ac Merge pull request #1097 from teg/dhcp-server-2
dhcp-server: make pool configurable
2015-08-31 23:41:34 +02:00
Tom Gundersen
9b3a67c55b networkd: dhcp-server - allow configuration of the pool
The constraints we place on the pool is that it is a contiguous
sequence of addresses in the same subnet as the server address, not
including the subnet nor broadcast addresses, but possibly including
the server address itself. If the server address is included in the
pool it is (obviously) reserved and not handed out to clients.
2015-08-31 21:42:33 +02:00
Tom Gundersen
61986155d2 networkd: dhcp-server - default to manage the whole subnet
Don't restrict yourselves to 32 leases, simply manage the whole subnet by default.
2015-08-31 21:42:11 +02:00
Tom Gundersen
9963469618 sd-dhcp-server: simplify pool creation
Merge sd_dhcp_server_set_address() and sd_dhcp_server_set_lease_pool() into
sd_dhcp_server_configure_pool() as the behavior of the two former depends
on the order they are called in. The flexibility is not needed, so let's
just do this in one call.
2015-08-31 21:34:58 +02:00
David Herrmann
3df49c2877 login: support user-bus on dbus1
dbus-1.10 was just released, including systemd units to run
`dbus-daemon --session` as systemd user unit. This allows using a
user-bus with dbus1, just like we do per default with kdbus.

All the dbus libraries have already been fixed long ago to use the
user-bus as default. Hence, there's no need to set
DBUS_SESSION_BUS_ADDRESS= if we use the user-bus. However, gdm and
friends continue to spawn a session bus if this variable is not set
(instead of checking for the existence of the user-bus). Hence, we force
the user-bus, if it is available, in pam_systemd. Once gdm and friends
are fixed, we can continue to drop this again. However, that might take
a while.

With this in place, all that is needed to make the user-bus work is:
    `systemctl --global enable dbus.socket`

If dbus.socket is not enabled, the legacy session-bus is still used.

Based on a patch by: Jan Alexander Steffens <jan.steffens@gmail.com>
2015-08-31 18:12:37 +02:00
Lennart Poettering
dcd7199082 cgtop: rework error handling
Never report errors twice.
2015-08-31 13:29:46 +02:00
Lennart Poettering
556c25cf8c sd-event: improve debug message when we fail to remove and fd from an epoll
Let's help users to debug issues with epoll fd removal by printing the
name of the event source.
2015-08-31 13:20:44 +02:00
Lennart Poettering
324496eb25 cgls: pretty print root cgroup path
Make sure show it as "/" rather than empty string.
2015-08-31 13:20:44 +02:00
Lennart Poettering
90990e28c9 manager: remove ask-password fd from sd_event before closing it
Otherwise we might attempt to remove a non-existing fd from epoll.
2015-08-31 13:20:44 +02:00
Lennart Poettering
7fcfb7ee2f cgtop: allow toggling of --recursive= and -k at runtime 2015-08-31 13:20:44 +02:00
Lennart Poettering
3cb5beea0c cgtop: recursively count cgroup member tasks
When showing the number of tasks in a cgroup, recursively count tasks in
child cgroups and include them in the number. This ensures that the
number of tasks is cummulative the same way as memory, cpu and IO
resources are.

Old behaviour can be restored by passing the new --recursive=no switch.
2015-08-31 13:20:44 +02:00
Lennart Poettering
41ba8b6e69 cgtop: ignore kernel threads when counting tasks
However, allow them to be counted in by specifying -k
2015-08-31 13:20:44 +02:00
Lennart Poettering
cb88a0a4ae cgls: print the expressive error message we have 2015-08-31 13:20:44 +02:00
Lennart Poettering
a6149b93af process-util: trivial optimization 2015-08-31 13:20:43 +02:00
Lennart Poettering
03af6492f0 cgtop: show resource usage relative to cgroup root only
This way the output is restricted to cgroups from a container when run
in one.
2015-08-31 13:20:43 +02:00
Lennart Poettering
52f448c3ff unit: minor simplification 2015-08-31 13:20:43 +02:00
Lennart Poettering
9797f89bf0 util: treat 'C' and 'POSIX' locale identical 2015-08-31 13:20:43 +02:00
Lennart Poettering
a1b4e6e933 pager: set $LESSCHARSET when we output UTF8 chars
This way we can be sure that less has the same idea of the terminal as
we do.

This solves issues in systems that have locale uninitalized, where
systemd would output UTF-8 but less wouldn't allow it and show them as
control characters.
2015-08-31 13:20:43 +02:00
Lennart Poettering
d79200e26e unit: unify how we assing slices to units
This adds a new call unit_set_slice(), and simplifies
unit_add_default_slice(). THis should make our code a bit more robust
and simpler.
2015-08-31 13:20:43 +02:00
Lennart Poettering
35b7ff80e2 unit: add new macros to test for unit contexts 2015-08-31 13:20:43 +02:00
Lennart Poettering
6513d561ce core: use DUAL_TIMESTAMP_NULL where we can 2015-08-31 13:20:43 +02:00