diff options
author | Tom Gundersen <teg@jklm.no> | 2013-06-14 22:56:39 +0200 |
---|---|---|
committer | Tom Gundersen <teg@jklm.no> | 2013-07-08 21:26:24 +0200 |
commit | edeb68c53f1cdc452016b4c8512586a70b1262e3 (patch) | |
tree | 66e5e1f5048756b501d5642dc1eb57c8745bd1a8 /units | |
parent | fec79699da51a0815ff01e14abcc94b1f6d3926a (diff) |
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 89d09e1b5c65a2d97840f682e0932c8bb499f166)
Diffstat (limited to 'units')
-rw-r--r-- | units/.gitignore | 1 | ||||
-rw-r--r-- | units/kmod-static-nodes.service.in | 16 | ||||
-rw-r--r-- | units/systemd-tmpfiles-setup-dev.service.in | 2 | ||||
-rw-r--r-- | units/systemd-udevd.service.in | 4 |
4 files changed, 20 insertions, 3 deletions
diff --git a/units/.gitignore b/units/.gitignore index 0bcbb00951..9aee00f2a4 100644 --- a/units/.gitignore +++ b/units/.gitignore @@ -58,3 +58,4 @@ /initrd-udevadm-cleanup-db.service /systemd-nspawn@.service /systemd-machined.service +/kmod-static-nodes.service diff --git a/units/kmod-static-nodes.service.in b/units/kmod-static-nodes.service.in new file mode 100644 index 0000000000..f8a2d474ef --- /dev/null +++ b/units/kmod-static-nodes.service.in @@ -0,0 +1,16 @@ +# This file is part of systemd. +# +# systemd is free software; you can redistribute it and/or modify it +# under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 2.1 of the License, or +# (at your option) any later version. + +[Unit] +Description=Create list of required static device nodes for the current kernel +DefaultDependencies=no +Before=sysinit.target systemd-tmpfiles-setup-dev.service + +[Service] +Type=oneshot +ExecStartPre=/usr/bin/mkdir -p /run/tmpfiles.d +ExecStart=@KMOD@ static-nodes --format=tmpfiles --output=/run/tmpfiles.d/kmod.conf diff --git a/units/systemd-tmpfiles-setup-dev.service.in b/units/systemd-tmpfiles-setup-dev.service.in index f029285bc0..8073b1229d 100644 --- a/units/systemd-tmpfiles-setup-dev.service.in +++ b/units/systemd-tmpfiles-setup-dev.service.in @@ -9,7 +9,7 @@ Description=Create static device nodes in /dev Documentation=man:tmpfiles.d(5) man:systemd-tmpfiles(8) DefaultDependencies=no -Before=sysinit.target systemd-udevd.service +Before=sysinit.target local-fs-pre.target systemd-udevd.service ConditionCapability=CAP_MKNOD [Service] diff --git a/units/systemd-udevd.service.in b/units/systemd-udevd.service.in index ddef423625..99f51304e4 100644 --- a/units/systemd-udevd.service.in +++ b/units/systemd-udevd.service.in @@ -11,8 +11,8 @@ Documentation=man:systemd-udevd.service(8) man:udev(7) DefaultDependencies=no Wants=systemd-udevd-control.socket systemd-udevd-kernel.socket After=systemd-udevd-control.socket systemd-udevd-kernel.socket -Before=sysinit.target local-fs-pre.target -ConditionCapability=CAP_MKNOD +Before=sysinit.target +ConditionPathIsReadWrite=/sys [Service] Type=notify |