--- /etc/rc.d/init.d/halt.orig 2008-08-14 14:15:25 +0400 +++ /etc/rc.d/init.d/halt 2008-08-14 14:26:01 +0400 @@ -12,6 +12,8 @@ export NOLOCALE=1 WITHOUT_RC_COMPAT=1 +MODFILE=/etc/sysconfig/badmodules + # Source function library. . /etc/init.d/functions @@ -50,6 +52,13 @@ action() return $rc } +removemodules() +{ + if [ -r "$MODFILE" ] ; then + /bin/cat "$MODFILE" | while read ; do /sbin/rmmod -f "$REPLY" ; done + fi +} + sendsigs() { action_begin_msg 'Asking all remaining processes to terminate' @@ -111,6 +120,9 @@ fi # Kill all processes sendsigs +# Remove "bad" modules +removemodules + # Write to wtmp file before unmounting /var halt -w