123456789101112131415161718192021222324252627282930313233 |
- #!/bin/sh
- action=$1
- [ -z "$action" ] && action=suspend
- MODULES_BLACKLIST=""
- if [ -r /etc/qubes-suspend-module-blacklist ]; then
- MODULES_BLACKLIST="$MODULES_BLACKLIST `cat /etc/qubes-suspend-module-blacklist`"
- fi
- if [ -r /rw/config/suspend-module-blacklist ]; then
- MODULES_BLACKLIST="$MODULES_BLACKLIST `cat /rw/config/suspend-module-blacklist`"
- fi
- if [ x"$action" == x"suspend" ]; then
- nmcli nm sleep true || service NetworkManager stop
- # Force interfaces down, just in case when NM didn't done it
- for if in `ls /sys/class/net|grep -v "lo\|vif"`; do
- ip l s $if down
- done
- LOADED_MODULES=""
- for mod in $MODULES_BLACKLIST; do
- if lsmod |grep -q $mod; then
- LOADED_MODULES="$LOADED_MODULES $mod"
- modprobe -r $mod
- fi
- done
- echo $LOADED_MODULES > /var/run/qubes/suspend-modules-loaded
- else
- for mod in `cat /var/run/qubes/suspend-modules-loaded`; do
- modprobe $mod
- done
- nmcli nm sleep false || { [ -x /bin/systemctl ] && systemctl start NetworkManager.service; } || service qubes-core-netvm start
- fi
|