-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathbotRest.py
More file actions
33 lines (27 loc) · 1.18 KB
/
Copy pathbotRest.py
File metadata and controls
33 lines (27 loc) · 1.18 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
import time
import subprocess
from watchdog.observers import Observer
from watchdog.events import FileSystemEventHandler
# Путь к файлу, который нужно отслеживать
FILE_TO_WATCH = "/var/www/telegram_bot/bot.py"
# Команда для запуска бота
BOT_COMMAND = ["python3", FILE_TO_WATCH]
class BotRestartHandler(FileSystemEventHandler):
def __init__(self):
self.process = subprocess.Popen(BOT_COMMAND) # Запускаем бота при старте
def on_modified(self, event):
if event.src_path == FILE_TO_WATCH:
print(f"Файл {FILE_TO_WATCH} изменен. Перезапуск бота...")
self.process.terminate() # Останавливаем текущий процесс
self.process = subprocess.Popen(BOT_COMMAND) # Перезапускаем бота
if __name__ == "__main__":
event_handler = BotRestartHandler()
observer = Observer()
observer.schedule(event_handler, path="/var/www/telegram_bot", recursive=False)
observer.start()
try:
while True:
time.sleep(1)
except KeyboardInterrupt:
observer.stop()
observer.join()