Доброго времени суток.
Может кто подскажет как в bash-скрипте реализовать проверку загружен ли требуемый модуль?
Банальный lsmod | grep имя_модуля считаю неккоректным т.к. скрипт должен быть кросс-дистрибутивным.
Заранее благодарен за помощь!
Bash: как проверить загружен ли требуемый модуль
Банальный lsmod | grep имя_модуля считаю неккоректным т.к. скрипт должен быть кросс-дистрибутивным.
NAME
lsmod — program to show the status of modules in the Linux Kernel
SYNOPSIS
lsmod
DESCRIPTION
lsmod is a trivial program which nicely formats the contents of the /proc/modules, showing what kernel mod-
ules are currently loaded.
это для всех linux подходит.
lsmod выводит не только загруженный модуль, но и зависимые от него модули, а это уже больше двух строк вывода...
lsmod выводит не только загруженный модуль, но и зависимые от него модули, а это уже больше двух строк вывода...
в данном случае grep выведет все то, что вы обозначите:
]$ /sbin/lsmod |grep hwmon
hwmon 36553 1 power_meter
или
$ /sbin/lsmod |grep lp
lp 47121 0
parport 73165 2 lp,parport_pc
[console]
/sbin/lsmod | grep -w ^lp
[/console]
А какая разница, сколько строк, в условии было -- "загружен ли модуль?"
[console]
if /sbin/lsmod | grep -w ^lp &> /dev/null ; then
echo "Загружен"
else
echo "НЕ загружен"
fi
[/console]
s_lim,
а) если модуль указан в чьих-то зависимостях, то он загружен... (если чего-нибудь страшного не случилось)
б) если уж так хочется, то можно какую-нить такую фигню сделать: lsmod |cut -d' ' -f1 | grep lp или lsmod | grep '^lp'
в) способ некорректен с точки зрения работы с самосборными, монолитными ядрами... ЕМНИП для Ъ надо /sys копать... или выдавать в случае отсутствия некий "ворнинг", а не "эпик фейл".
[added]
ещё траблы могут быть в ситуации, когда у модулей похожие имена, например fat - vfat. parport - parport_pc.
тогда способ bormant'а должен помочь.