Вопрос или проблема
# lsmod | grep -i sr_mod
sr_mod 22416 1
cdrom 42556 1 sr_mod
но он не используется никаким другим модулем
Как я могу узнать, какой процесс или модуль использует этот модуль?
Я хочу выгрузить sr_mod
с помощью этой команды:
rmmod sr_mod
и получаю эту ошибку:
rmmod: ERROR: Module sr_mod is in use
************************************
#modinfo sr_mod | grep depends
depends: cdrom
**************************************
#rmmod cdrom
rmmod: ERROR: Module cdrom is in use by: sr_mod
**************************************
#modinfo cdrom | grep depends
depends:
Я думаю, вам нужно:
modinfo sr_mod
Надеюсь, это даст вам всю необходимую информацию.
Попробуйте это –
lsmod cdrom | grep cdrom
Это должно отобразить “sr_mod” как зависимость.
Выполните команду ниже, чтобы удалить модуль cdrom.
modprobe -r sr_mod
Ответ или решение
Когда вы пытаетесь выгрузить модуль sr_mod
с помощью команды rmmod sr_mod
, и получаете ошибку rmmod: ERROR: Module sr_mod is in use
, это может быть связано с тем, что модуль используется другим процессом или модулем, что не позволяет его выгрузить. В соответствии с представленной информацией, модуль sr_mod
используется модулем cdrom
, что и подтверждается командой modinfo sr_mod | grep depends
, где отобразится зависимость от модуля cdrom
.
Для определения процессов, которые могут использовать данный модуль, выполните следующие шаги:
-
Проверьте, используется ли устройство, связанное с
sr_mod
. Откройте терминал и выполните следующую команду:lsof | grep sr_mod
Данная команда покажет процессы, которые открывают файлы, связанные с модулем
sr_mod
. Если какие-либо процессы используют модуль, их можно будет завершить. -
Проверьте открытые устройства. Возможно, устройство, связанное с модулем
sr_mod
(например, CD/DVD-привод), всё ещё открыт для чтения или записи. Чтобы проверить, какие устройства на вашем компьютере открыты, используйте:cat /proc/mounts | grep sr
Если устройство смонтировано, его необходимо размонтировать. Выполните:
umount /dev/cdrom
или укажите конкретный путь к вашему устройству.
-
Используйте команду
fuser
. Эта команда позволит вам увидеть, какие процессы используют файл или устройство:fuser -m /dev/cdrom
Необходимо заменить
/dev/cdrom
на фактическое устройство. После этого вы сможете завершить процессы, если это допустимо. -
Попробуйте удалить зависимости. Поскольку
sr_mod
зависит отcdrom
, вам нужно сначала выгрузитьcdrom
. Но перед тем как это сделать, убедитесь, что не осталось активных процессов, использующих это устройство.Порядок команд, которые следует выполнить:
umount /dev/cdrom # Размонтируйте устройство rmmod cdrom # Попробуйте выгрузить модуль cdrom rmmod sr_mod # После успешного удаления cdrom попробуйте выгрузить sr_mod
-
Если все вышеперечисленное не сработало, попробуйте перезагрузку. Иногда, когда модули остаются активными после завершения всех процессов, перезагрузка может помочь освободить ресурсы, что позволит выгрузить модули после ново запущенной сессии системы.
Следуя этим шагам, вы сможете определить, какой процесс или модуль использует sr_mod
, и, соответственно, удалить его. Обязательно следите за тем, чтобы не удалить важные системные модули и не завершить критически важные для работы системы процессы.