File tree Expand file tree Collapse file tree 1 file changed +7
-5
lines changed
Expand file tree Collapse file tree 1 file changed +7
-5
lines changed Original file line number Diff line number Diff line change @@ -41,20 +41,22 @@ clean_sysctl_conf() {
4141# 函数:加载队列调度模块
4242load_qdisc_module () {
4343 local qdisc_name=" $1 "
44+ local module_name=" sch_$qdisc_name "
4445
45- # fq 和 fq_codel 是内核内置的,不需要加载模块
46- if [[ " $qdisc_name " == " fq" || " $qdisc_name " == " fq_codel" ]]; then
46+ # 检查队列算法是否已可用(通过尝试读取当前可用的 qdisc)
47+ # 如果 sysctl 能成功设置,说明模块已存在
48+ if sudo sysctl -w net.core.default_qdisc=" $qdisc_name " > /dev/null 2>&1 ; then
49+ # 恢复原设置
50+ sudo sysctl -w net.core.default_qdisc=" $CURRENT_QDISC " > /dev/null 2>&1
4751 return 0
4852 fi
4953
50- local module_name=" sch_$qdisc_name "
51-
5254 # 检查模块是否已加载
5355 if lsmod | grep -q " ^${module_name// -/ _} " ; then
5456 return 0
5557 fi
5658
57- # 尝试加载模块
59+ # 模块不存在,尝试加载
5860 echo -e " \033[36m正在加载内核模块 $module_name ...\033[0m"
5961 if sudo modprobe " $module_name " 2> /dev/null; then
6062 echo -e " \033[1;32m✔ 模块 $module_name 加载成功\033[0m"
You can’t perform that action at this time.
0 commit comments