From 05e479cf92f9ce3a9911898db9db5ed212e59731 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Pierret=20=28fepitre=29?= Date: Fri, 17 Jan 2020 15:04:33 +0100 Subject: [PATCH] qvm-start-daemon: allow starting only if service enabled --- etc/qvm-start-daemon.desktop | 1 - qubesadmin/tools/qvm_start_daemon.py | 11 +++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/etc/qvm-start-daemon.desktop b/etc/qvm-start-daemon.desktop index e4b2340..4bcf4dd 100644 --- a/etc/qvm-start-daemon.desktop +++ b/etc/qvm-start-daemon.desktop @@ -5,4 +5,3 @@ Icon=qubes Exec=qvm-start-daemon --all --watch Terminal=false Type=Application -NotShowIn=X-QUBES diff --git a/qubesadmin/tools/qvm_start_daemon.py b/qubesadmin/tools/qvm_start_daemon.py index 2e046c6..7dbc6e6 100644 --- a/qubesadmin/tools/qvm_start_daemon.py +++ b/qubesadmin/tools/qvm_start_daemon.py @@ -26,6 +26,7 @@ import subprocess import asyncio import re import functools +import sys import xcffib import xcffib.xproto # pylint: disable=unused-import @@ -460,10 +461,20 @@ parser.add_argument('--pidfile', action='store', default=pidfile_path, parser.add_argument('--notify-monitor-layout', action='store_true', help='Notify running instance in --watch mode' ' about changed monitor layout') +# Add it for the help only +parser.add_argument('--force', action='store_true', default=False, + help='Force running daemon without enabled services' + ' \'guivm-gui-agent\' or \'audiovm-audio-agent\'') def main(args=None): """ Main function of qvm-start-daemon tool""" + only_if_service_enabled = ['guivm-gui-agent', 'audiovm-audio-agent'] + enabled_services = [service for service in only_if_service_enabled if + os.path.exists('/var/run/qubes-service/%s' % service)] + if not enabled_services and '--force' not in sys.argv: + print(parser.format_help()) + return args = parser.parse_args(args) if args.watch and not args.all_domains: parser.error('--watch option must be used with --all')