-
Notifications
You must be signed in to change notification settings - Fork 1
/
nvstop.sh
executable file
·49 lines (41 loc) · 1.11 KB
/
nvstop.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#!/usr/bin/env bash
. colors
if [[ $1 == "start" ]]; then
echo ""
echo "${CYAN}> Starting services${NOCOLOR}"
hivex start >/dev/null 2>&1
nvidia-oc > /dev/null 2>&1
amd-oc > /dev/null 2>&1
autofan start > /dev/null 2>&1
exit
fi
[[ -z "$1" ]] && try_count=3 || try_count="$1"
echo ""
echo "${CYAN}> Stopping services${NOCOLOR}"
# disable Nvidia tools that can auto load driver again
touch /run/hive/NV_OFF
modules=()
for (( i=0; i < try_count; i++ ))
do
modules=()
autoswitch stop > /dev/null 2>&1
nvidia-oc stop > /dev/null 2>&1
#wd stop > /dev/null 2>&1
autofan stop > /dev/null 2>&1
hivex stop >/dev/null 2>&1
killall xinit > /dev/null 2>&1 && sleep 0.5
killall nvidia-persistenced > /dev/null 2>&1 && sleep 0.5
for mod in nvidia_drm nvidia_uvm nvidia_modeset nvidia;do
if lsmod | grep -q $mod; then
rmmod -f $mod > /dev/null 2>&1 && sleep 0.5 || modules+=($mod)
fi
done
count_nvidia=`lsmod | grep -c nvidia`
if [[ $count_nvidia -eq 0 ]]; then
echo -e "${GREEN}> Unload modules successfull${NOCOLOR}"
exit 0
fi
sleep 0.5
done
echo -e "${RED}> Unload modules failed (${modules[*]})${NOCOLOR}"
exit 1