comparison 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
comparison
equal deleted inserted replaced
872:633487219ed6 873:9f85111f3dee
1 #!/usr/bin/env python
2
3 """
4 wait for a process writing to stdout to keep an
5 (e.g.) ssh connection alive
6 """
7
8 import subprocess
9 import sys
10 import time
11
12 KEEPALIVE = 300 # s
13 SLEEP = 1
14
15
16 def main(args=sys.argv[1:]):
17 """CLI"""
18
19 last = start = time.time()
20 proc = subprocess.Popen(args)
21
22 while proc.poll() is None:
23 if time.time() - last > KEEPALIVE:
24 last = time.time()
25 print ("[{} s] waiting for process: {}".format(last-start, subprocess.list2cmdline(args)))
26 sys.stdout.flush()
27 exit(proc.poll())
28
29 if __name__ == '__main__':
30 main()