blob: 3e5be80999cc3bf13c51ae4e480e62017d94931c [file] [log] [blame]
#!/usr/bin/python
import SimpleHTTPServer
import SocketServer
import os
import sys
def check_pid(pid):
try:
os.kill(pid, 0)
except OSError:
return False
else:
return True
class MyHandler(SimpleHTTPServer.SimpleHTTPRequestHandler):
def do_GET(self):
if 'quitquitquit' in self.path:
sys.exit(0)
return
SimpleHTTPServer.SimpleHTTPRequestHandler.do_GET(self)
def main():
server = SocketServer.TCPServer(('127.0.0.1', 0), MyHandler)
server.timeout = 0.5
ip, port = server.server_address
if len(sys.argv) <= 1:
print 'Usage: http_server /path/to/control/file'
return 1
filename = sys.argv[1]
open(filename, 'w').write(str(port))
while True:
print 'http_server running...'
server.handle_request()
if 'quitquitquit' in open(filename).read():
return 0
ppid = os.getppid()
if ppid == 1 or not check_pid(ppid):
print 'parent process died.'
return 2
if __name__ == '__main__':
rv = main()
print 'http_server exiting with code %d.' % rv
exit(rv)