1
1
mirror of https://github.com/systemd/systemd-stable.git synced 2024-12-24 21:34:08 +03:00
Commit Graph

578 Commits

Author SHA1 Message Date
Lennart Poettering
3990f24765 rfkill: add new rfkill tool to save/restore rfkill state across reboots
This works analogous to the existing backlight and random seed services
2013-10-14 04:31:49 +02:00
Zbigniew Jędrzejewski-Szmek
59fccd8211 execute.c: always set $SHELL
In e6dca81 $SHELL was added to user@.service. Let's
instead provide it to all units which have a user.
2013-10-02 22:23:56 +02:00
Dave Reisner
6c8c92fef7 fix lingering references to /var/lib/{backlight,random-seed}
This should have been part of ef5bfcf668.
2013-10-02 07:51:06 -04:00
David Herrmann
11c2f7a813 logind: run with CAP_SYS_ADMIN
DRM Master access requires CAP_SYS_ADMIN, yay! Add it to the capability
bounding set for systemd-logind. As CAP_SYS_ADMIN actually allows a huge
set of actions, this mostly renders the restriction-set useless. Anyway,
patches are already pending to reduce the restriction on the kernel side.
But these won't really make it into any stable-release so for now we're
stuck with CAP_SYS_ADMIN.
2013-10-01 17:59:44 +02:00
Evan Callicoat
e6dca81441 units: Add SHELL environment variable
With the advent of systemd --user sessions, it's become very interesting to spawn X as a user unit, as well as accompanying processes that may have previously been in a .xinitrc/.xsession, or even just to replace a collection of XDG/GDM/KDM/etc session files with independent systemd --user units. The simplest case here would be to login on a tty, with the traditional /usr/sbin/login "login manager".

However, systemd --user (spawned by user@.service) is at the top level of the slice for the user, and does not inherit any environment variables from the login process. Given the number of common applications which rely on SHELL being set in the environment, it seems like the cleanest way to provide this variable is to set it to %s in the user@.service.

Ideally in the long-term, applications which rely on SHELL being set should be fixed to just grab it from getpwnam() or similar, but until that becomes more common, I propose this simple change to make user sessions a little bit nicer out of the box.
2013-10-01 04:17:31 +02:00
Dave Reisner
8083d486d0 kmod-static-nodes: condition execution on modules.devname 2013-09-28 14:51:39 -04:00
Eelco Dolstra
a0f708053b Fix obsolete references to systemd-random-seed-load.service
This service was merged with systemd-random-seed-save.service in
c35b956d34.
2013-09-23 11:41:30 +02:00
Lennart Poettering
3331234adc nspawn: update unit file
ControlGroup= is obsolete, so let's drop it from the default nspawn unit
file.
2013-09-17 11:59:47 -05:00
Zbigniew Jędrzejewski-Szmek
5c390a4ae0 Add pam configuration to allow user sessions to work out of the box
systemd-logind will start user@.service. user@.service unit uses
PAM with service name 'systemd-user' to perform account and session
managment tasks. Previously, the name was 'systemd-shared', it is
now changed to 'systemd-user'.

Most PAM installations use one common setup for different callers.
Based on a quick poll, distributions fall into two camps: those that
have system-auth (Redhat, Fedora, CentOS, Arch, Gentoo, Mageia,
Mandriva), and those that have common-auth (Debian, Ubuntu, OpenSUSE).
Distributions that have system-auth have just one configuration file
that contains auth, password, account, and session blocks, and
distributions that have common-auth also have common-session,
common-password, and common-account. It is thus impossible to use one
configuration file which would work for everybody. systemd-user now
refers to system-auth, because it seems that the approach with one
file is more popular and also easier, so let's follow that.
2013-09-11 15:35:06 -04:00
Tom Gundersen
40f862e3ae filesystem targets: disable default dependencies
This means we can use default dependencies on mount units without having to get them automatically
ordered before the filesystem targets.

Reported-by: Thomas Baechler <thomas@archlinux.org>
2013-09-11 14:40:58 +02:00
Khem Raj
67c15b9a7a use CAP_MKNOD ConditionCapability
Fixes errors seen when booting VMs on QEMU like

systemd[1]: kmod-static-nodes.service: main process exited, code=exited, status=203/EXEC
systemd[1]: Failed to start Create list of required static device nodes for the current kernel.
systemd[1]: Unit kmod-static-nodes.service entered failed state.

Make sure that mknod capability is available

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2013-08-22 00:52:14 -04:00
Zbigniew Jędrzejewski-Szmek
219061dc52 units: disable kmod-static-nodes.service in containers
Fixes https://bugzilla.redhat.com/show_bug.cgi?id=998122.

Note: upstream kmod has a patch [1] to exit with a warning if
modules.devname is missing. We could use new %v specifier to make this
service conditional on the existence of this file, but this could
mask a kernel installation error, hence we should let kmod run
even if the file doesn't exist.

[1] http://git.kernel.org/cgit/utils/kernel/kmod/kmod.git/commit/?id=ae17710117
2013-08-20 21:18:00 -04:00
Kay Sievers
4bb3a126b7 udev: replace CAP_MKNOD by writable /sys condition 2013-08-17 19:07:42 +02:00
Zbigniew Jędrzejewski-Szmek
d0a2d726f0 units: make fsck units remain after exit
Without this, fsck would be re-run if any other service which pulls
in a target requiring one of the mounts was started after fsck was done
but before the initial transaction was done.

https://bugs.freedesktop.org/show_bug.cgi?id=66784
2013-08-15 15:42:09 -04:00
Thomas Hindoe Paaboel Andersen
5eec7de6ad typo fixes in man and comments 2013-08-15 23:38:09 +02:00
Kay Sievers
04bf3c1a60 sysctl: allow overwriting of values specified in "later" files 2013-08-15 18:43:31 +02:00
Lennart Poettering
875c6e1b48 backlight: instead of syspath use sysname for identifying backlight devices
This makes the description string of the backlight service a bit nicer.
2013-08-14 02:55:57 +02:00
Lennart Poettering
3731acf1ac backlight: add minimal tool to save/restore screen brightness across reboots
As many laptops don't save/restore screen brightness across reboots,
let's do this in systemd with a minimal tool, that restores the
brightness as early as possible, and saves it as late as possible. This
will cover consoles and graphical logins, but graphical desktops should
do their own per-user stuff probably.

This only touches firmware brightness controls for now.
2013-08-14 01:57:02 +02:00
Lennart Poettering
82659fd757 core: optionally send SIGHUP in addition to the configured kill signal
This is useful to fake session ends for processes like shells.
2013-07-30 01:54:59 +02:00
Dave Reisner
ec99834cb0 tmpfiles-setup: exclude /dev prefixes files
Fixes Arch Linux bug: https://bugs.archlinux.org/task/36259
2013-07-24 12:04:00 -04:00
Tom Gundersen
7e380bba1c kmod-static-nodes: remain after exit 2013-07-22 17:11:19 +02:00
Tom Gundersen
ef7e6e0598 systemd-tmpfiles-setup-dev: remain after exit
Without this, tmpfiles-setpu-dev  would be re-run if any other service,
which pulls in basic.target, was started after setup-dev was finished
and before basic.target was active.
2013-07-22 17:01:46 +02:00
Lennart Poettering
bc5cb1d525 machined: run machined at minimal capabilities 2013-07-19 03:49:24 +02:00
Lennart Poettering
085b90af43 units: add references to bus API documentation to logind+machined 2013-07-19 03:49:07 +02:00
Harald Hoyer
956eaf2b8d remove /run/initramfs/root-fsck logic
dracut uses systemd in the initramfs and does not write these files
anymore.

The state of the root fsck is serialized.
2013-07-17 11:33:07 +02:00
Zbigniew Jędrzejewski-Szmek
7aa4fa34f7 units: do not special-case getty@tty1.service installation
Since a long while we can use "systemctl enable getty@tty1.service"
which does the right thing, so there's no need to abuse Alias=
for installation.
2013-07-13 10:00:29 -04:00
Tom Gundersen
3d56f7df44 static-nodes: don't hardcode path to mkdir 2013-07-12 20:08:31 +02:00
Lennart Poettering
4c5420a0c1 units: since we auto-spawn user@.service instances now we don need an [Install] section in it 2013-07-11 01:57:09 +02:00
Tom Gundersen
edeb68c53f static-nodes: move creation of static nodes from udevd to tmpfiles
As of kmod v14, it is possible to export the static node information from
/lib/modules/`uname -r`/modules.devname in tmpfiles.d(5) format.

Use this functionality to let systemd-tmpfilesd create the static device nodes
at boot, and drop the functionality from systemd-udevd.

As an effect of this we can move from systemd-udevd to systemd-tmpfiles-setup-dev:

 * the conditional CAP_MKNOD (replaced by checking if /sys is mounted rw)
 * ordering before local-fs-pre.target (see 89d09e1b5c)
2013-07-08 21:26:24 +02:00
Kay Sievers
a0f9c810fa build-sys: work around automake issue with files with a leading '-'
We should probably work around it, until it is sorted out.

http://debbugs.gnu.org/cgi/bugreport.cgi?bug=14728
2013-07-02 23:15:49 -04:00
Lennart Poettering
1ee306e124 machined: split out machine registration stuff from logind
Embedded folks don't need the machine registration stuff, hence it's
nice to make this optional. Also, I'd expect that machinectl will grow
additional commands quickly, for example to join existing containers and
suchlike, hence it's better keeping that separate from loginctl.
2013-07-02 03:47:23 +02:00
Lennart Poettering
fb6becb443 logind: port over to use scopes+slices for all cgroup stuff
In order to prepare things for the single-writer cgroup scheme, let's
make logind use systemd's own primitives for cgroup management.

Every login user now gets his own private slice unit, in which his sessions
live in a scope unit each. Also, add user@$UID.service to the same
slice, and implicitly start it on first login.
2013-07-02 01:48:55 +02:00
Lennart Poettering
4ad490007b 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=).
2013-06-27 04:17:34 +02:00
Lennart Poettering
9444b1f20e logind: add infrastructure to keep track of machines, and move to slices
- This changes all logind cgroup objects to use slice objects rather
  than fixed croup locations.

- logind can now collect minimal information about running
  VMs/containers. As fixed cgroup locations can no longer be used we
  need an entity that keeps track of machine cgroups in whatever slice
  they might be located. Since logind already keeps track of users,
  sessions and seats this is a trivial addition.

- nspawn will now register with logind and pass various bits of metadata
  along. A new option "--slice=" has been added to place the container
  in a specific slice.

- loginctl gained commands to list, introspect and terminate machines.

- user.slice and machine.slice will now be pulled in by logind.service,
  since only logind.service requires this slice.
2013-06-20 03:49:59 +02:00
Lennart Poettering
f2561e8598 units: add default units for system.slice, user.slice, machine.slice 2013-06-18 00:59:54 +02:00
Karel Zak
7c1b8f043e units: cleanup agetty command line
* baud rate is optional and unnecessary for virtual terminals
 * term type is optional (default is 'linux' for virtual terminals
   and 'vt102' for serial lines)
 * long options are more user-friendly

... all this is supported since util-linux v2.20 (Aug 2011).
2013-06-04 15:34:44 +02:00
Lennart Poettering
3f92e4b4b6 utmp: turn systemd-update-utmp-shutdown.service into a normal runtime service
With this change systemd-update-utmp-shutdown.service is replaced by
systemd-update-utmp.service which is started at boot and stays around
until shutdown. This allows us to properly order the unit against both
/var/log and auditd.

https://bugzilla.redhat.com/show_bug.cgi?id=853104
https://bugs.freedesktop.org/show_bug.cgi?id=64365
2013-05-16 00:19:03 +02:00
Lennart Poettering
c35b956d34 units: rework systemd-random-seed-{load,save}.service to be a single service
That way ordering it with MountsRequiredFor= works properly, as this no
longer results in mount units start requests to be added to the shutdown
transaction that conflict with stop requests for the same unit.
2013-05-15 22:38:51 +02:00
Auke Kok
9541fe6adf systemctl does not expand %u, so revert back to %I
The description field is only displayed by systemctl, and
it can't expand %u properly (it will always display "root").
2013-05-09 09:39:15 -07:00
Lennart Poettering
05947befce units: add an easy-to-use unit template file systemd-nspawn@.service for running containers as system services 2013-04-30 08:36:02 -03:00
Lennart Poettering
a34cb32e54 units: update user@.service to reflect new user cgroup paths 2013-04-23 16:00:32 -03:00
Umut Tezduyar
195f8e3612 man: link systemd-tmpfiles-setup-dev.service 2013-04-23 12:55:44 +02:00
Tom Gundersen
3e8037f17c units: rename systemd-static-nodes -> systemd-tmpfiles-setup-dev
This is really just a special case of systemd-tmpfiles-setup, moreover it could easily create more than static nodes.
2013-04-22 21:57:39 +02:00
Lennart Poettering
b7253ecda5 readahead: let readahead run for a little longer
Especially slower systems need more than 10s for starting the session,
so let's bump this to 30s.
2013-04-17 22:24:07 +02:00
Kay Sievers
4e6db59202 bus: rename KDBUS_CMD_FNAME_POLICY_NONE -> KDBUS_CMD_FNAME_POLICY_OPEN 2013-04-12 21:04:49 +02:00
Tom Gundersen
8c11aac1d7 tmpfiles: create static device nodes before udev is started
Since v183, the contents of /usr/lib/udev/devices is no longer copied to /dev
on boot, rather systemd-tmpfiles should be used instead. However, as
systemd-tmpfiles --create is only ran long after udevd has been started, it is
no longer possible to use udev rules to assign permissions to the static nodes.

This calls systemd-tmpfiles --create early, before udev is started, and
restricts the call to /dev, which is known to be mounted already.

In the future, this could also take over the creation of static device nodes
from systemd-udevd.
2013-04-12 02:43:01 +02:00
Lennart Poettering
8df31a9c98 units: fix some left-over mentions of remote-fs-setup.target 2013-04-09 19:05:49 +02:00
Dr. Tilmann Bubeck
80cfe9e163 Do no isolate in case of emergency or severe problems
This patch changes local-fs.target and systemd-fsck to not use
"isolate" when going into emergency.
This fixes https://bugzilla.redhat.com/show_bug.cgi?id=810722

The motivation is, that when something wents wrong, we should
keep everything as it is, to let the user fix the problem. When
isolating we stop a lot of services and therefore change the
system heavily so that it gets harder for the user to fix.

An example is a crypted partition. When the fsck in a crypted
partition fails, it previously used "emergency/start/isolate"
which stops cryptsetup. Therefore if the user tries to fsck
e.g. /dev/mapper/luks-356c20ae-c7a2-4f1c-ae1d-1d290a91b691
as printed by the failing fsck, then it will not find this
device (because it got closed).

So please apply this patch to let the user see the failing
situation.

Thanks!

[zj: removed dead isolate param from start_target().]

https://bugs.freedesktop.org/show_bug.cgi?id=49463
https://bugzilla.redhat.com/show_bug.cgi?id=810722
2013-04-01 23:43:48 -04:00
Zbigniew Jędrzejewski-Szmek
cc1f918dda units/user: default.target must be isolatable
...
Activating default unit: default.target
Default target could not be isolated, starting instead: Operation refused, unit may not be isolated.
2013-03-31 19:43:14 -04:00
Lennart Poettering
1dda524f05 units: fix network-online.target fields 2013-03-29 18:31:07 +01:00