Серверная консоль и выход из программы
Первая проблема в неблокирующем запуске нескольких демонов, так как они стартуют независимо и сами по себе, но к ним тоже надо получить доступ (читать и писать в их консоль), а multiprocessing.Process.join() вызывает блокировку вызывающего потока.
Вторая проблема в том, что по логике главным потоком должен быть слушатель серверной консоли, но twisted.internet.reactor не запускается из дочерних потоков, то есть трюк вида
Код:
def startServer():
reactor.listenTCP(8000,myFactory())
reactor.run()
p = Process(target=startServer)
p.start()
p.join()
reactor.listenTCP(8000,myFactory())
reactor.run()
p = Process(target=startServer)
p.start()
p.join()
А в третьих, нужно сделать выход. При этом выход должен вызываться как из консоли сервера, так и из одного из инет-серверов. При этом должны посылаться разные команды к демонам (и не SIGTERM, то есть простой terminate() не катит), так и завершаться все инет-сервера (и тогда по идее сервер, из которого вызывали завершение, должен будет завершиться последним).
Что тут можно сделать (логику приложения пока поменять тоже возможно)?