from socketify import App import os import multiprocessing def run_app(): app = App() app.get("/", lambda res, req: res.end("Hello, World!")) app.listen( 3000, lambda config: print( "PID %d Listening on port http://localhost:%d now\n" % (os.getpid(), config.port) ), ) app.run() pid_list = [] # fork limiting the cpu count - 1 for _ in range(1, multiprocessing.cpu_count()): pid = os.fork() # n greater than 0 means parent process if not pid > 0: run_app() break pid_list.append(pid) run_app() # run app on the main process too :) # sigint everything to gracefull shutdown import signal for pid in pid_list: os.kill(pid, signal.SIGINT)