diff --git a/srv_main.py b/srv_main.py new file mode 100644 index 0000000..cba0464 --- /dev/null +++ b/srv_main.py @@ -0,0 +1,81 @@ +from os import system, name +from time import sleep + +from threading import Thread +from multiprocessing import Process + +from network import * +from updater import * +from proxy import * +from status import * +from db import * + +# +# Здесь общий запуск всех файлов и команд +# + +def main(): + # Проверка обновлений + from sys import argv + if len(argv) == 1: + print('Проверка обновлений...') + system('git pull') + print('Перезагрузка скрипта...') + system('python main.py updated') + exit() + print('\nУспешно перезагружено!') + + # Запуск прокси для сервисов + # проксируем http сервер + http_port = port_gen() + print(f'HTTP: {http_port}') + rp_http = Thread(target = watch_http, args=(http_port,)) + rp_http.start() + + # проксируем сервер обработки запросов + serv_port = port_gen() + print(f'SERV: {serv_port}') + rp_serv = Thread(target = watch_serv, args=(serv_port,)) + rp_serv.start() + + # Загружаем порт в конфиг + conf = read() + conf['our_port'] = serv_port + write(conf) + + # Стартуем сервисы + # http сервер + http = Thread(target = server_http) + http.start() + # сервер обработки запросов + srv = Thread(target = server, args=(http_port,)) + srv.start() + + # Стартуем авто-поиск портов и авто-обновление сайтов + #updater = Thread(target = update_demon, args=(serv_port,)) + #updater.start() + + # Стартуем интерфейс + system('python interface.py') + +if __name__ == '__main__': + # Запускаем главный процесс, чтобы потом легко убить его + p = Process(target=main) + p.start() + + status_set(True) # Устанавливаем статус, что программа работает + + st = status_check() + while st: + try: + st = status_check() + sleep(0.01) + except KeyboardInterrupt: + p.terminate() + exit() + except: + pass + + # Когда послан код завершения + p.terminate() + exit()