From 998ea53b46a2fee7685865ea21b70ea617054203 Mon Sep 17 00:00:00 2001 From: Colin Walters Date: Tue, 1 Mar 2011 12:31:51 -0500 Subject: [PATCH] gnome-shell-jhbuild.in: Kill notification-daemon and notify-osd here We need to terminate these processes in a replacing-GNOME-2 scenario. Reviewed by danw on IRC. --- src/gnome-shell-jhbuild.in | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/src/gnome-shell-jhbuild.in b/src/gnome-shell-jhbuild.in index e3c932618..220d53fd6 100755 --- a/src/gnome-shell-jhbuild.in +++ b/src/gnome-shell-jhbuild.in @@ -206,6 +206,21 @@ def start_shell(perf_output=None): args.append('--sync') return subprocess.Popen(args, env=env) +def _killall(processname): + subprocess.call(['pkill', '-u', '%d' % (os.getuid(), ), + '-f', r'^([^ ]*/)?' + re.escape(processname) + '($| )']) + +def ensure_desktop_infrastructure_state(): + # This is a collection of random hacks necessary to make sure + # that we can run in jhbuild scenarios or when dynamically + # replacing GNOME 2. + + start_dconf_await_service() + + # We need to terminate notification-daemon + _killall('notification-daemon') + _killall('notify-osd') + def run_shell(perf_output=None): if options.debug: # Record initial terminal state so we can reset it to that @@ -527,13 +542,11 @@ elif options.debug: # something else. normal_exit = False -# Make sure dconf daemon is running -start_dconf_await_service() - try: if options.perf: normal_exit = run_performance_test() else: + ensure_desktop_infrastructure_state() normal_exit = run_shell() finally: if options.replace and (options.perf or not normal_exit):