LinuxForum.Fans
Тема

Bash: как проверить загружен ли требуемый модуль

Автор: s_lim 6 сообщений 2288 просмотров
#204357

Доброго времени суток.
Может кто подскажет как в bash-скрипте реализовать проверку загружен ли требуемый модуль?
Банальный lsmod | grep имя_модуля считаю неккоректным т.к. скрипт должен быть кросс-дистрибутивным.
Заранее благодарен за помощь!

#204362
s_lim написал:
Банальный 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 подходит.

#204366

lsmod выводит не только загруженный модуль, но и зависимые от него модули, а это уже больше двух строк вывода...

#204369
s_lim написал:
lsmod выводит не только загруженный модуль, но и зависимые от него модули, а это уже больше двух строк вывода...

в данном случае grep выведет все то, что вы обозначите:

text
]$ /sbin/lsmod |grep hwmon
hwmon                  36553  1 power_meter

или

text

$ /sbin/lsmod |grep lp
lp                     47121  0
parport                73165  2 lp,parport_pc
#204370

[console]
/sbin/lsmod | grep -w ^lp
[/console]
А какая разница, сколько строк, в условии было -- "загружен ли модуль?"

[console]
if /sbin/lsmod | grep -w ^lp &> /dev/null ; then
echo "Загружен"
else
echo "НЕ загружен"
fi
[/console]

#204420

s_lim,
а) если модуль указан в чьих-то зависимостях, то он загружен... (если чего-нибудь страшного не случилось)
б) если уж так хочется, то можно какую-нить такую фигню сделать: lsmod |cut -d' ' -f1 | grep lp или lsmod | grep '^lp'
в) способ некорректен с точки зрения работы с самосборными, монолитными ядрами... ЕМНИП для Ъ надо /sys копать... или выдавать в случае отсутствия некий "ворнинг", а не "эпик фейл".

[added]
ещё траблы могут быть в ситуации, когда у модулей похожие имена, например fat - vfat. parport - parport_pc.
тогда способ bormant'а должен помочь.

Войдите или зарегистрируйтесь, чтобы ответить.