【linux】Linux开机自动加载模块

下面是以前学习Linux时写的,后来仔细研究rc.sysinit后发现,只需要修改下列地方就可以了,不必这么麻烦的:
  rc.sysinit中有这样的一段代码:
  # load other user-defined modules
  for file in / etc / sysconfig / modules/ .modules ; do
    [ -x $file ] && KaTeX parse error: Expected 'EOF', got '#' at position 15: file   done   #̲ Load modules (…unamer/kernel/net/ipv4/ipvs ]; then
    for module in /lib/modules/KaTeX parse error: Expected 'EOF', got '}' at position 28: …l/net/ipv4/ipvs}̲       module={module%.ko}
      modprobe KaTeX parse error: Expected 'EOF', got '&' at position 21: …e >/dev/null 2>&̲1     done   fi…{module##
/} :其中##表示从前面删除字符,*/表示删除到最后一个/,如果一个#就表示只删除到第一个/。如果变量后面接##,表示在##后面的字符串取最长的(一直到最后面),如果接#,表示取最小的一段。
  module=${module%.ko}:表示从后面删除.ko。如果变量后面接%%,表示在%%后面的字符串取最长的(一直到最前面),如果接%,表示取最小的一段。
  这样多module的两次修改就得到了模块名,就是文件名不带路径和.ko后缀。
  modprobe $module >/dev/null 2>&1:加载模块,输出都指向空设备
  这样重启后lsmod | grep ip_vs就会得到:
  ip_vs_wrr 6977 0
  ip_vs_wlc 6081 0
  ip_vs_sh 6593 0
  ip_vs_sed 6081 0
  ip_vs_rr 6081 0
  ip_vs_nq 5953 0
  ip_vs_lc 5953 0
  ip_vs_lblcr 10565 0
  ip_vs_lblc 9797 0
  ip_vs_ftp 10053 0
  ip_vs_dh 6593 0
  ip_vs 79425 22 ip_vs_wrr,ip_vs_wlc,ip_vs_sh,ip_vs_sed,ip_vs_rr,ip_vs_nq,ip_vs_lc,ip_vs_lblcr,ip_vs_lblc,ip_vs_ftp,ip_vs
分享:

你可能感兴趣的:(【linux】Linux开机自动加载模块)