Systemd/units
Zbigniew Jędrzejewski-Szmek c4708f1323 tmpfiles: introduce the concept of unsafe operations
Various operations done by systemd-tmpfiles may only be safely done at
boot (e.g. removal of X lockfiles in /tmp, creation of /run/nologin).
Other operations may be done at any point in time (e.g. setting the
ownership on /{run,var}/log/journal). This distinction is largely
orthogonal to the type of operation.

A new switch --unsafe is added, and operations which should only be
executed during bootup are marked with an exclamation mark in the
configuration files. systemd-tmpfiles.service is modified to use this
switch, and guards are added so it is hard to re-start it by mistake.

If we install a new version of systemd, we actually want to enforce
some changes to tmpfiles configuration immediately. This should now be
possible to do safely, so distribution packages can be modified to
execute the "safe" subset at package installation time.

/run/nologin creation is split out into a separate service, to make it
easy to override.

https://bugzilla.redhat.com/show_bug.cgi?id=1043212
https://bugzilla.redhat.com/show_bug.cgi?id=1045849
2013-12-24 15:48:06 -05:00
..
user bus: install systemd-bus-proxyd unit files for compatibility with dbus1 2013-12-13 20:49:57 +01:00
.gitignore bus: install unit files for new driver service 2013-12-17 15:42:33 +01:00
basic.target units: add default units for system.slice, user.slice, machine.slice 2013-06-18 00:59:54 +02:00
bluetooth.target units: introduce new Documentation= field and make use of it everywhere 2012-05-21 15:14:51 +02:00
busnames.target units: install busnames.target by default 2013-12-03 01:18:26 +01:00
console-getty.service.m4.in units: when spawning a getty configure TERM explicitly 2013-12-18 18:21:28 +01:00
console-shell.service.m4.in core: optionally send SIGHUP in addition to the configured kill signal 2013-07-30 01:54:59 +02:00
container-getty@.service.m4.in units: when spawning a getty configure TERM explicitly 2013-12-18 18:21:28 +01:00
cryptsetup.target units: introduce new Documentation= field and make use of it everywhere 2012-05-21 15:14:51 +02:00
debug-shell.service.in build-sys: add missing sed substitution for DEBUGTTY 2013-03-25 19:28:00 +01:00
dev-hugepages.mount units: add reference to new wiki page to all api mount units 2013-01-15 18:14:13 +01:00
dev-mqueue.mount units: add reference to new wiki page to all api mount units 2013-01-15 18:14:13 +01:00
emergency.service.in core: optionally send SIGHUP in addition to the configured kill signal 2013-07-30 01:54:59 +02:00
emergency.target units: introduce new Documentation= field and make use of it everywhere 2012-05-21 15:14:51 +02:00
final.target units: introduce new Documentation= field and make use of it everywhere 2012-05-21 15:14:51 +02:00
getty.target unit: link up getty configuration from man page and unit files 2012-11-20 20:10:30 +01:00
getty@.service.m4 units: when spawning a getty configure TERM explicitly 2013-12-18 18:21:28 +01:00
graphical.target units: add explicit dependency on display-manager.service to graphical.target 2012-06-27 22:23:16 +02:00
halt-local.service.in build-sys: make rc-local support part of SYSV compat 2013-01-04 23:26:20 +01:00
halt.target units: rename halt/hibernate/kexec/poweroff/reboot/suspend to systed-xxx 2012-06-25 14:28:50 +02:00
hibernate.target unit: rename BindTo= to BindsTo= 2012-07-13 23:34:40 +02:00
hybrid-sleep.target logind: support for hybrid sleep (i.e. suspend+hibernate at the same time) 2012-10-28 00:50:35 +02:00
initrd-cleanup.service.in core: replace OnFailureIsolate= setting by a more generic OnFailureJobMode= setting and make use of it where applicable 2013-11-26 02:26:31 +01:00
initrd-fs.target core: replace OnFailureIsolate= setting by a more generic OnFailureJobMode= setting and make use of it where applicable 2013-11-26 02:26:31 +01:00
initrd-parse-etc.service.in core: replace OnFailureIsolate= setting by a more generic OnFailureJobMode= setting and make use of it where applicable 2013-11-26 02:26:31 +01:00
initrd-root-fs.target core: replace OnFailureIsolate= setting by a more generic OnFailureJobMode= setting and make use of it where applicable 2013-11-26 02:26:31 +01:00
initrd-switch-root.service.in core: replace OnFailureIsolate= setting by a more generic OnFailureJobMode= setting and make use of it where applicable 2013-11-26 02:26:31 +01:00
initrd-switch-root.target Make initrd.target the default target in the initrd 2013-03-15 00:49:37 +01:00
initrd-udevadm-cleanup-db.service.in Move udevadm to rootbindir 2013-03-11 07:18:33 +01:00
initrd.target core: replace OnFailureIsolate= setting by a more generic OnFailureJobMode= setting and make use of it where applicable 2013-11-26 02:26:31 +01:00
kexec.target units: rename halt/hibernate/kexec/poweroff/reboot/suspend to systed-xxx 2012-06-25 14:28:50 +02:00
kmod-static-nodes.service.in static-nodes: don't call mkdir 2013-10-17 19:53:44 +02:00
local-fs-pre.target units: disallow manual starting of passive units 2013-03-26 15:15:39 +01:00
local-fs.target core: replace OnFailureIsolate= setting by a more generic OnFailureJobMode= setting and make use of it where applicable 2013-11-26 02:26:31 +01:00
machine.slice logind: add infrastructure to keep track of machines, and move to slices 2013-06-20 03:49:59 +02:00
Makefile build-sys: add small redirecting Makefiles to simplify compilation from within emacs 2010-05-17 01:44:03 +02:00
multi-user.target units: initrd, multi-user - add a few more words to Description= 2013-03-16 16:29:29 +01:00
network-online.target units: fix network-online.target fields 2013-03-29 18:31:07 +01:00
network.target man: link in wiki documentation about network.target 2013-01-15 04:12:53 +01:00
nss-lookup.target units: disallow manual starting of passive units 2013-03-26 15:15:39 +01:00
nss-user-lookup.target units: disallow manual starting of passive units 2013-03-26 15:15:39 +01:00
org.freedesktop.DBus.busname bus: install unit files for new driver service 2013-12-17 15:42:33 +01:00
org.freedesktop.hostname1.busname units: ship busname units for the bus activated services we ship 2013-12-03 04:28:02 +01:00
org.freedesktop.locale1.busname units: ship busname units for the bus activated services we ship 2013-12-03 04:28:02 +01:00
org.freedesktop.login1.busname units: ship busname units for the bus activated services we ship 2013-12-03 04:28:02 +01:00
org.freedesktop.machine1.busname units: ship busname units for the bus activated services we ship 2013-12-03 04:28:02 +01:00
org.freedesktop.timedate1.busname units: ship busname units for the bus activated services we ship 2013-12-03 04:28:02 +01:00
paths.target units: introduce new timers.target and paths.target to hook timer/path units into for boot 2013-03-25 21:28:30 +01:00
poweroff.target units: rename halt/hibernate/kexec/poweroff/reboot/suspend to systed-xxx 2012-06-25 14:28:50 +02:00
printer.target units: introduce new Documentation= field and make use of it everywhere 2012-05-21 15:14:51 +02:00
proc-sys-fs-binfmt_misc.automount units: add reference to new wiki page to all api mount units 2013-01-15 18:14:13 +01:00
proc-sys-fs-binfmt_misc.mount units: add reference to new wiki page to all api mount units 2013-01-15 18:14:13 +01:00
quotaon.service.in build-sys: perform autodetection of quota-tools binaries 2012-09-11 01:43:48 +02:00
rc-local.service.in build-sys: make rc-local support part of SYSV compat 2013-01-04 23:26:20 +01:00
reboot.target units: rename halt/hibernate/kexec/poweroff/reboot/suspend to systed-xxx 2012-06-25 14:28:50 +02:00
remote-fs-pre.target units: disallow manual starting of passive units 2013-03-26 15:15:39 +01:00
remote-fs.target filesystem targets: disable default dependencies 2013-09-11 14:40:58 +02:00
rescue.service.m4.in core: optionally send SIGHUP in addition to the configured kill signal 2013-07-30 01:54:59 +02:00
rescue.target rescue: don't pull in sockets 2012-05-22 16:12:25 +02:00
rpcbind.target units: disallow manual starting of passive units 2013-03-26 15:15:39 +01:00
serial-getty@.service.m4 units: when spawning a getty configure TERM explicitly 2013-12-18 18:21:28 +01:00
shutdown.target units: introduce new Documentation= field and make use of it everywhere 2012-05-21 15:14:51 +02:00
sigpwr.target units: introduce new Documentation= field and make use of it everywhere 2012-05-21 15:14:51 +02:00
sleep.target units: stop sleep.target when it has done its job 2012-06-25 12:01:09 +02:00
slices.target core: general cgroup rework 2013-06-27 04:17:34 +02:00
smartcard.target units: introduce new Documentation= field and make use of it everywhere 2012-05-21 15:14:51 +02:00
sockets.target units: introduce new Documentation= field and make use of it everywhere 2012-05-21 15:14:51 +02:00
sound.target units: introduce new Documentation= field and make use of it everywhere 2012-05-21 15:14:51 +02:00
suspend.target unit: rename BindTo= to BindsTo= 2012-07-13 23:34:40 +02:00
swap.target units: introduce new Documentation= field and make use of it everywhere 2012-05-21 15:14:51 +02:00
sys-fs-fuse-connections.mount units: add reference to new wiki page to all api mount units 2013-01-15 18:14:13 +01:00
sys-kernel-config.mount units: add reference to new wiki page to all api mount units 2013-01-15 18:14:13 +01:00
sys-kernel-debug.mount units: add reference to new wiki page to all api mount units 2013-01-15 18:14:13 +01:00
sysinit.target units: introduce new Documentation= field and make use of it everywhere 2012-05-21 15:14:51 +02:00
syslog.socket service: ignore dependencies on $syslog and $local_fs in LSB scripts 2013-01-16 21:34:09 +01:00
system-update.target man: document systemd-update-generator 2012-06-27 15:12:29 +02:00
system.slice core: general cgroup rework 2013-06-27 04:17:34 +02:00
systemd-ask-password-console.path units: introduce new timers.target and paths.target to hook timer/path units into for boot 2013-03-25 21:28:30 +01:00
systemd-ask-password-console.service.in units: run systemd-ask-password-console.service after systemd-vconsole-setup.service 2013-03-06 15:39:37 +01:00
systemd-ask-password-wall.path units: introduce new timers.target and paths.target to hook timer/path units into for boot 2013-03-25 21:28:30 +01:00
systemd-ask-password-wall.service.in units: automatically respawn the core services 2012-06-28 12:18:04 +02:00
systemd-backlight@.service.in fix lingering references to /var/lib/{backlight,random-seed} 2013-10-02 07:51:06 -04:00
systemd-binfmt.service.in man: add documentation for the binfmt, modules-load, sysctl services 2012-05-31 16:00:34 +02:00
systemd-bus-driverd.service.in units: limit caps for bus proxyd and driverd services 2013-12-23 20:37:00 +01:00
systemd-bus-proxyd.socket units: properly make bus proxy socket of type Accept=yes 2013-12-16 21:06:57 +01:00
systemd-bus-proxyd@.service.in units: limit caps for bus proxyd and driverd services 2013-12-23 20:37:00 +01:00
systemd-fsck-root.service.in Remove FsckPassNo from systemd-fsck-root.service 2013-10-19 12:23:17 +02:00
systemd-fsck@.service.in fstab-generator: Generate explicit dependencies on systemd-fsck@.service instead of using FsckPassNo 2013-10-19 12:23:17 +02:00
systemd-halt.service.in man: document systemd-halt.service and friends 2012-06-26 17:50:29 +02:00
systemd-hibernate.service.in man: document systemd-suspend.service 2012-06-26 17:33:11 +02:00
systemd-hostnamed.service.in event: hook up sd-event with the service watchdog logic 2013-12-11 18:20:09 +01:00
systemd-hybrid-sleep.service.in logind: support for hybrid sleep (i.e. suspend+hibernate at the same time) 2012-10-28 00:50:35 +02:00
systemd-initctl.service.in man: document systemd-initctl 2012-06-26 00:15:59 +02:00
systemd-initctl.socket man: properly document .socket units in man page 2012-06-27 01:06:35 +02:00
systemd-journal-flush.service.in journal: replace implicit flushing of journal by explicit one 2012-07-11 02:41:16 +02:00
systemd-journal-gatewayd.service.in journal: make gatewayd run under its own user ID 2013-03-05 19:15:31 +01:00
systemd-journal-gatewayd.socket journal: add minimal journal gateway daemon based on GNU libmicrohttpd 2012-09-28 00:55:24 +02:00
systemd-journald.service.in journald: port to sd-event and enable watchdog support 2013-12-11 20:55:09 +01:00
systemd-journald.socket typo fixes in man and comments 2013-08-15 23:38:09 +02:00
systemd-kexec.service.in man: document systemd-halt.service and friends 2012-06-26 17:50:29 +02:00
systemd-localed.service.in event: hook up sd-event with the service watchdog logic 2013-12-11 18:20:09 +01:00
systemd-logind.service.in event: hook up sd-event with the service watchdog logic 2013-12-11 18:20:09 +01:00
systemd-machined.service.in units: systemd-machined now exits on idle and we shouldn't try to restart it then 2013-12-23 20:37:03 +01:00
systemd-modules-load.service.in units: add the modules-load cmdline parameters to the unit conditions 2012-07-25 08:51:41 +02:00
systemd-networkd.service.in units: run systemd-networkd.service only if CAP_NET_ADMIN capability is around 2013-12-18 18:21:27 +01:00
systemd-nspawn@.service.in man,units: fix installation of systemd-nspawn@.service and add example 2013-11-09 19:02:53 -05:00
systemd-poweroff.service.in man: document systemd-halt.service and friends 2012-06-26 17:50:29 +02:00
systemd-quotacheck.service.in build-sys: perform autodetection of quota-tools binaries 2012-09-11 01:43:48 +02:00
systemd-random-seed.service.in Fix obsolete references to systemd-random-seed-load.service 2013-09-23 11:41:30 +02:00
systemd-readahead-collect.service.in man: document the readahead services 2012-06-26 18:16:00 +02:00
systemd-readahead-done.service.in units: don't run readahead done timers in containers 2013-12-11 23:31:34 +01:00
systemd-readahead-done.timer units: don't run readahead done timers in containers 2013-12-11 23:31:34 +01:00
systemd-readahead-drop.service man: add Documentation= tags to all kinds of missing units 2012-06-27 01:07:04 +02:00
systemd-readahead-replay.service.in man: document the readahead services 2012-06-26 18:16:00 +02:00
systemd-reboot.service.in man: document systemd-halt.service and friends 2012-06-26 17:50:29 +02:00
systemd-remount-fs.service.in man: link in API FS documentation from the wiki 2013-01-15 05:13:54 +01:00
systemd-rfkill@.service.in rfkill: add new rfkill tool to save/restore rfkill state across reboots 2013-10-14 04:31:49 +02:00
systemd-shutdownd.service.in man: properly document .socket units in man page 2012-06-27 01:06:35 +02:00
systemd-shutdownd.socket man: properly document .socket units in man page 2012-06-27 01:06:35 +02:00
systemd-suspend.service.in man: document systemd-suspend.service 2012-06-26 17:33:11 +02:00
systemd-sysctl.service.in sysctl: allow overwriting of values specified in "later" files 2013-08-15 18:43:31 +02:00
systemd-timedated.service.in event: hook up sd-event with the service watchdog logic 2013-12-11 18:20:09 +01:00
systemd-tmpfiles-clean.service.in man: link systemd-tmpfiles-setup-dev.service 2013-04-23 12:55:44 +02:00
systemd-tmpfiles-clean.timer man: link systemd-tmpfiles-setup-dev.service 2013-04-23 12:55:44 +02:00
systemd-tmpfiles-setup-dev.service.in kmod-static-nodes: remain after exit 2013-07-22 17:11:19 +02:00
systemd-tmpfiles-setup.service.in tmpfiles: introduce the concept of unsafe operations 2013-12-24 15:48:06 -05:00
systemd-udev-settle.service.in udev: replace CAP_MKNOD by writable /sys condition 2013-08-17 19:07:42 +02:00
systemd-udev-trigger.service.in udev: replace CAP_MKNOD by writable /sys condition 2013-08-17 19:07:42 +02:00
systemd-udevd-control.socket udev: replace CAP_MKNOD by writable /sys condition 2013-08-17 19:07:42 +02:00
systemd-udevd-kernel.socket udev: replace CAP_MKNOD by writable /sys condition 2013-08-17 19:07:42 +02:00
systemd-udevd.service.in static-nodes: move creation of static nodes from udevd to tmpfiles 2013-07-08 21:26:24 +02:00
systemd-update-utmp-runlevel.service.in utmp: turn systemd-update-utmp-shutdown.service into a normal runtime service 2013-05-16 00:19:03 +02:00
systemd-update-utmp.service.in utmp: turn systemd-update-utmp-shutdown.service into a normal runtime service 2013-05-16 00:19:03 +02:00
systemd-user-sessions.service.in man: document systemd-user-sessions.service 2012-06-25 17:34:50 +02:00
systemd-vconsole-setup.service.in man: document systemd-vconsole-setup.service 2012-06-25 12:00:43 +02:00
time-sync.target units: disallow manual starting of passive units 2013-03-26 15:15:39 +01:00
timers.target units: introduce new timers.target and paths.target to hook timer/path units into for boot 2013-03-25 21:28:30 +01:00
tmp.mount units: add reference to new wiki page to all api mount units 2013-01-15 18:14:13 +01:00
umount.target units: introduce new Documentation= field and make use of it everywhere 2012-05-21 15:14:51 +02:00
user.slice logind: add infrastructure to keep track of machines, and move to slices 2013-06-20 03:49:59 +02:00
user@.service.in execute.c: always set $SHELL 2013-10-02 22:23:56 +02:00
x-.slice build-sys: work around automake issue with files with a leading '-' 2013-07-02 23:15:49 -04:00