11#! /bin/sh
22
33set -x
4+
5+ # Ensure modprobe is in PATH and detect modprobe location
6+ export PATH=" /usr/sbin:/sbin:$PATH "
7+
8+ # Find modprobe location using LISA's standard approach
9+ if command -v modprobe > /dev/null 2>&1 ; then
10+ MODPROBE_CMD=$( command -v modprobe)
11+ else
12+ MODPROBE_CMD=" modprobe" # fallback, will likely fail but let's try
13+ fi
414log_file=" ${1:- $HOME / modprobe_reloader.log} " # Default log file path in the home directory
515pid_file=" ${2:- $HOME / modprobe_reloader.pid} " # Default PID file path in the home directory
616module_name=" ${3:- hv_netvsc} " # Default module name
@@ -36,7 +46,7 @@ if [ "$module_name" = "hv_netvsc" ]; then
3646 remove_attempt=1
3747 while [ $remove_attempt -le 5 ]; do
3848 echo " Remove attempt $remove_attempt " >> " $log_file "
39- sudo modprobe -r " $v " " $module_name " >> " $log_file " 2>&1
49+ sudo " $MODPROBE_CMD " -r $v " $module_name " >> " $log_file " 2>&1
4050 check_module_removed=$( lsmod | grep hv_netvsc || true)
4151 echo " After remove attempt $remove_attempt : '$check_module_removed '" >> " $log_file "
4252 if [ -z " $check_module_removed " ]; then
@@ -52,7 +62,7 @@ if [ "$module_name" = "hv_netvsc" ]; then
5262 sleep 0.5
5363 done
5464
55- sudo modprobe " $v " " $module_name " >> " $log_file " 2>&1
65+ sudo " $MODPROBE_CMD " " $v " " $module_name " >> " $log_file " 2>&1
5666 check_module_loaded=$( lsmod | grep hv_netvsc || true)
5767 echo " After load: '$check_module_loaded '" >> " $log_file "
5868 if [ -n " $check_module_loaded " ]; then
8292 (
8393 j=1
8494 while [ $j -le " $times " ]; do
85- { sudo modprobe -r " $v " " $module_name " ; sudo modprobe " $v " " $module_name " ; } >> " $log_file " 2>&1
95+ { sudo " $MODPROBE_CMD " -r $v " $module_name " ; sudo " $MODPROBE_CMD " $v " $module_name " ; } >> " $log_file " 2>&1
8696 j=$(( j + 1 ))
8797 done
8898 ) &
0 commit comments