mirror of
https://github.com/Justuser3310/jetwork.git
synced 2025-01-18 17:08:48 +00:00
Снова multiprocessing, добавление мнгновенной остановки без багов
This commit is contained in:
parent
9b64354728
commit
d6559d0e68
119
main.py
119
main.py
@ -1,71 +1,76 @@
|
||||
from os import system, name
|
||||
from threading import Thread
|
||||
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 sys import argv
|
||||
if len(argv) == 1:
|
||||
print("Проверка обновлений...")
|
||||
system("git pull")
|
||||
print("Перезагрузка скрипта...")
|
||||
system("python main.py updated")
|
||||
exit()
|
||||
print("\nУспешно перезагружено!")
|
||||
|
||||
|
||||
from proxy 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:
|
||||
try:
|
||||
pass
|
||||
except:
|
||||
def main():
|
||||
# Проверка обновлений
|
||||
from sys import argv
|
||||
if len(argv) == 1:
|
||||
print("Проверка обновлений...")
|
||||
system("git pull")
|
||||
print("Перезагрузка скрипта...")
|
||||
system("python main.py updated")
|
||||
exit()
|
||||
print("\nУспешно перезагружено!")
|
||||
|
||||
#print(client(8000, "ping"))
|
||||
#ports = port_check(serv_port)
|
||||
#print(ports)
|
||||
# Запуск прокси для сервисов
|
||||
# проксируем http сервер
|
||||
http_port = port_gen()
|
||||
print(f"HTTP: {http_port}")
|
||||
rp_http = Thread(target = watch_http, args=(http_port,))
|
||||
rp_http.start()
|
||||
|
||||
#print(client(4015, "ping"))
|
||||
#print(client(4137, "is_just.jet"))
|
||||
# проксируем сервер обработки запросов
|
||||
serv_port = port_gen()
|
||||
print(f"SERV: {serv_port}")
|
||||
rp_serv = Thread(target = watch_serv, args=(serv_port,))
|
||||
rp_serv.start()
|
||||
|
||||
#client(4092, "publish_just.jet<>4066")
|
||||
# Стартуем сервисы
|
||||
# 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()
|
||||
|
26
status.py
Normal file
26
status.py
Normal file
@ -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…
Reference in New Issue
Block a user