diff options
author | davidovski <david@davidovski.xyz> | 2022-03-30 00:50:53 +0100 |
---|---|---|
committer | davidovski <david@davidovski.xyz> | 2022-03-30 00:50:53 +0100 |
commit | ffd7994da3b5c8021aa040f6ca4244f391eb9a0a (patch) | |
tree | 3492107ce7a1dd98ab64e9a8a5dd6e19fb544a6c /extra/eudev/udev_retry.initd | |
parent | d28d2287b138ede0591d9facd5dbe7ca4f329f83 (diff) |
fixed initd scripts for udev and sysklogd
Diffstat (limited to 'extra/eudev/udev_retry.initd')
-rw-r--r-- | extra/eudev/udev_retry.initd | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/extra/eudev/udev_retry.initd b/extra/eudev/udev_retry.initd new file mode 100644 index 0000000..cfe077c --- /dev/null +++ b/extra/eudev/udev_retry.initd @@ -0,0 +1,31 @@ +#!/sbin/openrc-run +start () { + echo "Retrying failed uevents, if any..." + + # As of udev-186, the --run option is no longer valid + #rundir=$(/sbin/udevadm info --run) + rundir=/run/udev + # From Debian: "copy the rules generated before / was mounted + # read-write": + + for file in ${rundir}/tmp-rules--*; do + dest=${file##*tmp-rules--} + [ "$dest" = '*' ] && break + cat $file >> /etc/udev/rules.d/$dest + rm -f $file + done + + # Re-trigger the uevents that may have failed, + # in hope they will succeed now + /bin/sed -e 's/#.*$//' /etc/sysconfig/udev_retry | /bin/grep -v '^$' | \ + while read line ; do + for subsystem in $line ; do + /sbin/udevadm trigger --subsystem-match=$subsystem --action=add + done + done + + # Now wait for udevd to process the uevents we triggered + if ! is_true "$OMIT_UDEV_RETRY_SETTLE"; then + /sbin/udevadm settle + fi +} |