
nmcli doesn't seem to have stable API, especially "nmcli nm sleep" doesn't work anymore in Fedora 20.
42 lignes
1.4 KiB
Bash
Fichiers exécutables
42 lignes
1.4 KiB
Bash
Fichiers exécutables
#!/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
|