Снова multiprocessing, добавление мнгновенной остановки без багов

main
justuser 4 months ago
parent 9b64354728
commit d6559d0e68

@ -1,71 +1,76 @@
from os import system, name from os import system, name
from threading import Thread
from time import sleep from time import sleep
from threading import Thread
from multiprocessing import Process
from network import * from network import *
from updater import * from updater import *
# Здесь общий запуск всех файлов и команд
# Проверка обновлений
from sys import argv
if len(argv) == 1:
print("Проверка обновлений...")
system("git pull")
print("Перезагрузка скрипта...")
system("python main.py updated")
exit()
print("\nУспешно перезагружено!")
from proxy import * from proxy import *
from status import *
http_port = port_gen() # Здесь общий запуск всех файлов и команд
print(f"HTTP: {http_port}")
rp_http = Thread(target = watch_http, args=(http_port,))
rp_http.daemon = True
rp_http.start()
serv_port = port_gen()
print(f"SERV: {serv_port}")
rp_serv = Thread(target = watch_serv, args=(serv_port,))
rp_serv.daemon = True
rp_serv.start()
# Стартуем сервисы
#http сервер
http = Thread(target = server_http)
http.daemon = True
http.start()
# сервер для пинга
server = Thread(target = server, args=(http_port,))
server.daemon = True
server.start()
# Стартуем авто-поиск портов и авто-обновление сайтов
updater = Thread(target = update_demon, args=(serv_port,))
updater.daemon = True
updater.start()
# Стартуем интерфейс
system(f"python -m streamlit run --server.address=127.0.0.1 interface.py {serv_port}")
while True: def main():
try: # Проверка обновлений
pass from sys import argv
except: if len(argv) == 1:
print("Проверка обновлений...")
system("git pull")
print("Перезагрузка скрипта...")
system("python main.py updated")
exit() exit()
print("\nУспешно перезагружено!")
#print(client(8000, "ping"))
#ports = port_check(serv_port) # Запуск прокси для сервисов
#print(ports) # проксируем http сервер
http_port = port_gen()
#print(client(4015, "ping")) print(f"HTTP: {http_port}")
#print(client(4137, "is_just.jet")) rp_http = Thread(target = watch_http, args=(http_port,))
rp_http.start()
#client(4092, "publish_just.jet<>4066")
# проксируем сервер обработки запросов
serv_port = port_gen()
print(f"SERV: {serv_port}")
rp_serv = Thread(target = watch_serv, args=(serv_port,))
rp_serv.start()
# Стартуем сервисы
# 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(f"python -m streamlit run --server.address=127.0.0.1 interface.py {serv_port}")
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()

@ -0,0 +1,26 @@
#
# Установка/проверка статуса завершения
#
import os
if not os.path.exists('status'):
f = open('status', 'w')
f.write('work')
f.close()
def status_check():
f = open('status', 'r')
st = f.read()
if st == 'work':
return True
else:
return False
def status_set(st):
f = open('status', 'w')
if st == True:
f.write('work')
else:
f.write('stop')
f.close()
Loading…
Cancel
Save