report any expired sites & nodes
[monitor.git] / Rpyc / Servers / forking_server.py
1 import sys\r
2 import os\r
3 from ServerUtils import serve_socket, create_listener_socket, DEFAULT_PORT\r
4 \r
5 \r
6 def serve_in_child(sock):\r
7     """forks a child to run the server in. the parent doesnt wait() for the child, \r
8     so if you do a `ps`, you'll see zombies. but who cares. i used to do a doublefork()\r
9     for that, but it's really meaningless. anyway, when the parent dies, the zombies\r
10     die as well."""\r
11     if os.fork() == 0:\r
12         try:\r
13             serve_socket(sock)\r
14         finally:\r
15             sys.exit()\r
16 \r
17 def main(port = DEFAULT_PORT):\r
18     sock = create_listener_socket(port)\r
19     while True:\r
20         newsock, name = sock.accept()\r
21         serve_in_child(newsock)\r
22 \r
23 if __name__ == "__main__":\r
24     main()\r
25 \r
26