changeset 873:9f85111f3dee

add process waiting example
author Jeff Hammel <k0scist@gmail.com>
date Tue, 07 May 2019 10:40:28 -0700
parents 633487219ed6
children ee3bcd644727
files python/example/waiter.py
diffstat 1 files changed, 30 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/python/example/waiter.py	Tue May 07 10:40:28 2019 -0700
@@ -0,0 +1,30 @@
+#!/usr/bin/env python
+
+"""
+wait for a process writing to stdout to keep an
+(e.g.) ssh connection alive
+"""
+
+import subprocess
+import sys
+import time
+
+KEEPALIVE = 300  # s
+SLEEP = 1
+
+
+def main(args=sys.argv[1:]):
+    """CLI"""
+
+    last = start = time.time()
+    proc = subprocess.Popen(args)
+
+    while proc.poll() is None:
+        if time.time() - last > KEEPALIVE:
+            last = time.time()
+            print ("[{} s] waiting for process: {}".format(last-start, subprocess.list2cmdline(args)))
+            sys.stdout.flush()
+    exit(proc.poll())
+
+if __name__ == '__main__':
+    main()