0d3ed747b4
nmcli doesn't seem to have stable API, especially "nmcli nm sleep" doesn't work anymore in Fedora 20.
42 lines
1.4 KiB
Bash
Executable File
42 lines
1.4 KiB
Bash
Executable File
#!/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
|
|
dbus_send --system --print-reply \
|
|
--dest=org.freedesktop.NetworkManager \
|
|
/org/freedesktop/NetworkManager \
|
|
org.freedesktop.NetworkManager.Sleep boolean: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
|
|
dbus_send --system --print-reply \
|
|
--dest=org.freedesktop.NetworkManager \
|
|
/org/freedesktop/NetworkManager \
|
|
org.freedesktop.NetworkManager.Sleep boolean:false || \
|
|
{ [ -x /bin/systemctl ] && systemctl start NetworkManager.service; } || service qubes-core-netvm start
|
|
fi
|