start() { get_usb_interface set_pklvl load_interfaces fgrep -qs usb /proc/devices || exit mount_proc_usb sleep 2 detect_devices ... touch "$LOCKFILE" sleep 1 } Эта конструкция, помимо очевидного замедления загрузки, ещё и содержит race при использовании hotplug (загрузка модулей из скрипта накладывается на загрузку тех же модулей из hotplug - несколько раз я наблюдал сообщения о невозможности загрузки модуля usb-storage, когда он на самом деле оказывался успешно загруженным).
Я не писал этот код, не понимаю до конца логики его работы, и ничего поделать с этим не могу.
Насколько я понимаю, вызов detect_devices в этом месте представляет собой жалкую попытку реализовать автозагрузку драйверов для USB-устройств, которые были подключены в момент загрузки, без использования hotplug. Это нам нужно?
весь этот кошмар должен заменить hotplug (хотя он не лучше).
Замена service usb на hotplug устранила эту проблему (правда, принесла другие...).
Хм.. а какие, если не секрет ? ;-) Вроде как сейчас на hotplug критичных багов нет ?