Ядро Linux только готово разгрузить модули если их module_exit
функционируйте возвращается успешно. Если некоторая функция от катастрофических отказов модуля, ядро может восстанавливаться, но модуль заблокирован в памяти. Может быть возможно рыться в структурах данных ядра и насильственно отметить модуль как незагружаемый (попытайтесь исправить module_exit
функция, чтобы ничего не сделать), но это опасно. Ваш лучший выбор состоит в том, чтобы перезагрузить.
Нормальный способ протестировать модуль ядра находится в виртуальной машине. Не тестируйте модуль на своей машине разработки. VM имеет преимущество перед реальной машиной, что можно сохранить состояние VM в готовой к тестированию конфигурации и восстановить его как много раз как Вам угодно, который экономит время запуска между тестами.
Флаг -x
не является строго "многословным", это:
Оболочка должна записать в стандартную ошибку трассу для каждой команды после того, как она разворачивает команду и перед ее выполнением.
++
означает, что эта строка трассы идет от внутренней обработки оболочки, в то время как оболочка думает о вашей подсказке. Это вероятно что-то, что происходит в вашей PROMPT_COMMAND
: в этом случае, если вы запустите:
PROMPT_COMMAND=
set -x
то не получите больше дополнительного вывода.
Возможно, у вас есть и другая конфигурация, вызывающая это - Bash имеет много настроек prompt setup - и в этом случае bash -norc
должен полностью избежать этого.
Тем не менее, это, по сути, поведение, предназначенное для этой цели: -x
действительно предназначено для отладки скриптов оболочки, а не для использования в интерактивной оболочке. Она действительно предназначена для вывода на печать каждой выполняемой команды, и это то, что она делает здесь - есть дополнительная команда, которая выполняется с каждой напечатанной подсказкой.
Дополнительный вывод также может быть произведен функциями, вызываемыми из вашей переменной $PS1
. Попробуйте установить минимальный запрос: экспорт PS1='\u@h:\w \$ '