diff --git a/pytools/obmcutil b/pytools/obmcutil
index aee294b..a18d970 100644
--- a/pytools/obmcutil
+++ b/pytools/obmcutil
@@ -6,6 +6,10 @@
 
 from dbus.mainloop.glib import DBusGMainLoop
 import gobject
+import os
+import signal
+import time
+from subprocess import Popen
 
 descriptors = {
     'power': {
@@ -91,6 +95,9 @@
 
     property_listener.success = True
 
+    if args.wait and args.verbose:
+        pid = Popen(["/bin/journalctl", "-f", "--no-pager"]).pid
+
     if args.wait:
         sig_match = dbus_bus.add_signal_receiver(property_listener, "JobRemoved")
 
@@ -100,6 +107,11 @@
         mainloop.run()
         sig_match.remove()
 
+    if args.wait and args.verbose:
+        # wait some time for the journal output
+        time.sleep(args.wait_tune)
+        os.kill(pid, signal.SIGTERM)
+
     return property_listener.success
 
 def run_one_command(dbus_bus, descriptor, args):
@@ -144,8 +156,13 @@
     dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)
 
     parser = argparse.ArgumentParser()
+    parser.add_argument('--verbose', '-v', action='store_true',
+            help="Verbose output")
     parser.add_argument('--wait', '-w', action='store_true',
             help='Block until the state transition succeeds or fails')
+    parser.add_argument('--wait-tune', '-t', nargs='?', default=8, type=float,
+            # help='Seconds to wait for journal output to complete after receiving DBus signal',
+            help=argparse.SUPPRESS)
     parser.add_argument('recipe', choices=sorted(descriptors.keys()))
     args = parser.parse_args()
 
