 0d3ed747b4
			
		
	
	
		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
 |