blob: 2852f314660be3da8bda6c44f0c7d77dc207858e [file] [log] [blame]
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="systemd-udev-settle.service"
<refpurpose>Wait for all pending udev events to be handled</refpurpose>
<para>This service calls <command>udevadm settle</command> to wait until all events that have been queued
by <citerefentry><refentrytitle>udev</refentrytitle><manvolnum>7</manvolnum></citerefentry> have been
processed. It is a crude way to wait until "all" hardware has been discovered. Services may pull in this
service and order themselves after it to wait for the udev queue to be empty.</para>
<para><emphasis>Using this service is not recommended.</emphasis> There can be no guarantee that hardware
is fully discovered at any specific time, because the kernel does hardware detection asynchronously, and
certain buses and devices take a very long time to become ready, and also additional hardware may be
plugged in at any time. Instead, services should subscribe to udev events and react to any new hardware as
it is discovered. Services that, based on configuration, expect certain devices to appear, may warn or
report failure after a timeout. This timeout should be tailored to the hardware type. Waiting for
<filename>systemd-udev-settle.service</filename> usually slows boot significantly, because it means waiting
for all unrelated events too.</para>
<title>See Also</title>