summaryrefslogtreecommitdiff
path: root/units
diff options
context:
space:
mode:
Diffstat (limited to 'units')
-rw-r--r--units/.gitignore3
-rw-r--r--units/udev-control.socket10
-rw-r--r--units/udev-kernel.socket10
-rw-r--r--units/udev-settle.service.in25
-rw-r--r--units/udev-trigger.service.in10
-rw-r--r--units/udev.service.in14
6 files changed, 72 insertions, 0 deletions
diff --git a/units/.gitignore b/units/.gitignore
index 94412d52e7..f3b3cef133 100644
--- a/units/.gitignore
+++ b/units/.gitignore
@@ -40,3 +40,6 @@ systemd-update-utmp-runlevel.service
systemd-update-utmp-shutdown.service
test-env-replace
systemd-binfmt.service
+/udev-settle.service
+/udev-trigger.service
+/udev.service
diff --git a/units/udev-control.socket b/units/udev-control.socket
new file mode 100644
index 0000000000..f80f774427
--- /dev/null
+++ b/units/udev-control.socket
@@ -0,0 +1,10 @@
+[Unit]
+Description=udev Control Socket
+DefaultDependencies=no
+ConditionCapability=CAP_MKNOD
+
+[Socket]
+Service=udev.service
+ListenSequentialPacket=/run/udev/control
+SocketMode=0600
+PassCredentials=yes
diff --git a/units/udev-kernel.socket b/units/udev-kernel.socket
new file mode 100644
index 0000000000..23fa9d5e11
--- /dev/null
+++ b/units/udev-kernel.socket
@@ -0,0 +1,10 @@
+[Unit]
+Description=udev Kernel Socket
+DefaultDependencies=no
+ConditionCapability=CAP_MKNOD
+
+[Socket]
+Service=udev.service
+ReceiveBuffer=134217728
+ListenNetlink=kobject-uevent 1
+PassCredentials=yes
diff --git a/units/udev-settle.service.in b/units/udev-settle.service.in
new file mode 100644
index 0000000000..b0a4964f76
--- /dev/null
+++ b/units/udev-settle.service.in
@@ -0,0 +1,25 @@
+# This service is usually not enabled by default. If enabled, it
+# acts as a barrier for basic.target -- so all later services will
+# wait for udev completely finishing its coldplug run.
+#
+# If needed, to work around broken or non-hotplug-aware services,
+# it might be enabled unconditionally, or pulled-in on-demand by
+# the services that assume a fully populated /dev at startup. It
+# should not be used or pulled-in ever on systems without such
+# legacy services running.
+
+[Unit]
+Description=udev Wait for Complete Device Initialization
+DefaultDependencies=no
+Wants=udev.service
+After=udev-trigger.service
+Before=basic.target
+
+[Service]
+Type=oneshot
+TimeoutSec=180
+RemainAfterExit=yes
+ExecStart=@bindir@/udevadm settle
+
+[Install]
+WantedBy=basic.target
diff --git a/units/udev-trigger.service.in b/units/udev-trigger.service.in
new file mode 100644
index 0000000000..cd81945c88
--- /dev/null
+++ b/units/udev-trigger.service.in
@@ -0,0 +1,10 @@
+[Unit]
+Description=udev Coldplug all Devices
+Wants=udev.service
+After=udev-kernel.socket udev-control.socket
+DefaultDependencies=no
+
+[Service]
+Type=oneshot
+RemainAfterExit=yes
+ExecStart=@bindir@/udevadm trigger --type=subsystems --action=add ; @bindir@/udevadm trigger --type=devices --action=add
diff --git a/units/udev.service.in b/units/udev.service.in
new file mode 100644
index 0000000000..c27eb1baf5
--- /dev/null
+++ b/units/udev.service.in
@@ -0,0 +1,14 @@
+[Unit]
+Description=udev Kernel Device Manager
+Wants=udev-control.socket udev-kernel.socket
+After=udev-control.socket udev-kernel.socket
+Before=basic.target
+DefaultDependencies=no
+ConditionCapability=CAP_MKNOD
+
+[Service]
+Type=notify
+OOMScoreAdjust=-1000
+Sockets=udev-control.socket udev-kernel.socket
+Restart=on-failure
+ExecStart=@pkglibexecdir@/udevd