Ok, so this may be a little bit unorthodox or I'm just stupid or both :)
I'm trying a very simple setup where I start a bottle server in one Process instance and start a smallish TFTP server in another instance.
#!/usr/bin/env python import bottle import sys import tftpy from multiprocessing import Process def main(): try: t = Process(target=bottle.run(host='0.0.0.0', port=8080)) t.daemon = True t.start() t.join() h = Process(target=tftpy.TftpServer('/srv/tftp').listen('0.0.0.0', 69)) h.start() h.join() except KeyboardInterrupt: sys.stdout.write("Aborted by user.\n") sys.exit(1) if __name__ == "__main__": main() Unless I'm totally crazy, I'd expect them to start up in parallel. In reality, what happens is that bottle starts and locks whole thing up. If I exit bottle, TFTP daemon starts.
I also tried a similar approach with threading module, with about same results.
What am I doing wrong?