Mercurial > hg > config
diff python/example/waiter.py @ 873:9f85111f3dee
add process waiting example
author | Jeff Hammel <k0scist@gmail.com> |
---|---|
date | Tue, 07 May 2019 10:40:28 -0700 |
parents | |
children |
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()