eddy_em: (Default)
eddy_em ([personal profile] eddy_em) wrote2021-02-04 01:56 pm

Косяк в rc-скрипте gentoo

Промучился полчаса, пока понял, почему у меня после апдейта (плюс еще и ядро обновил) "поломался" udev (вставляю преобразователь CAN<>USB, а /dev/ttyUSB0 не появляется). Оказывается, ошибка в init-скрипте. Есть функция get_udevd_binary. Вот так она должна выглядеть:
get_udevd_binary() {
	local bins
	bins="/sbin/udevd /lib/systemd/systemd-udevd /usr/lib/systemd/systemd-udevd"
	for f in ${bins}; do
		if [ -x "$f" ]; then
			command="$f"
			break
		fi
	done
	if [ -z "$command" ]; then
		eerror "Unable to find udev executable."
		return 1
	fi
}

а в оригинале break после обнаружения бинарника отсутствует! А какая-то падла занесла мне симлинк /lib/systemd/systemd-udevd -> ../../bin/udevadm!!! Понятное дело, что симлинк неправильный (должно быть /sbin/udevd), поэтому ничего не происходило и демон udevd не запускался! Добавил break и удалил мусор. Все работает.

P.S. А вообще, если бы разработчики пакета udev-init-scripts были бы приличными людьми, то такой проверки бы вообще не было, а просто было бы написано command="/sbin/udev". Потому что приличному человеку даже в голову не может прийти, что кто-то может пользоваться смесью openrc и systemd!

Post a comment in response:

This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

If you are unable to use this captcha for any reason, please contact us by email at support@dreamwidth.org