qubes-core-admin-linux/pm-utils/52qubes-pause-vms
Marek Marczykowski-Górecki e0c875a367
pm-utils: call qubes.SuspendPreAll/qubes.SuspendPostAll services
Host suspend notification may be useful not only to driver domains. For
example Whonix needs to resync time after suspend.

Thanks @adrelanos for help.

Fixes QubesOS/qubes-issues#1663
2016-03-15 23:13:48 +01:00

28 lines
864 B
Python
Executable File

#!/usr/bin/python
from qubes.qubes import QubesVmCollection,QubesException
import sys
qc = QubesVmCollection()
qc.lock_db_for_reading()
qc.load()
qc.unlock_db()
if sys.argv[1] in ["suspend", "hibernate"]:
for vm in qc.values():
if vm.is_running():
try:
vm.run_service("qubes.SuspendPreAll", user="root")
vm.suspend()
except Exception as e:
print >>sys.stderr, "Failed to suspend VM %s: %s" % (vm.name, e.message)
elif sys.argv[1] in ["resume", "thaw"]:
for vm in qc.values():
if vm.get_power_state() in ["Paused", "Suspended"]:
try:
vm.resume()
vm.run_service("qubes.SuspendPostAll", user="root")
except Exception as e:
print >>sys.stderr, "Failed to resume VM %s: %s" % (vm.name, e.message)