@lemonlimelike

Как сделать функцию запуска скрипта и его остановку?

Здравствуйте! Пишу бота для телеграмма. Появилась такая надобность, как запускать бота, так и его выключать. То есть, пишу /start - запускается, /stop - останавливается. И возникла такая идея. Будет всего 2 скрипта, один будет принимать команды и разные сообщения, а второй скрипт будет запускаться в зависимости от пришедшей команды. То есть, в боте пишу /start, первый скрипт слушает это - получает команду /start, затем еще пару сообщений и запускается второй скрипт. Затем если нужно его остановить то пишу /stop, первый скрипт получает эту команду и останавливает второй скрипт. Может идея бред, но как такое реализовать? Как запускать скрипты из других файлов(скриптов)? В python
  • Вопрос задан
  • 486 просмотров
Решения вопроса 1
SoreMix
@SoreMix Куратор тега Python
yellow
Первый вопрос - зачем?

Тем не менее,

@bot.message_handler(commands=['start', 'stop'])
def control(message):
    
    if message.text == '/start':
        proc = subprocess.Popen(['python', 'second.py'], creationflags=subprocess.CREATE_NEW_CONSOLE)

        with open('pid.txt', 'w') as f:
            f.write(str(proc.pid))

    elif message.text == '/stop':
        
        with open('pid.txt', 'r') as f:
            script_pid = int(f.read())

        os.kill(script_pid, 9)
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@fojetin
Привет!
Я думаю, проще будет сделать включение/выключение бота одной из встроенных фич.
Можно сделать переключаемый bool параметр. И все команды бота, кроме /on /off прогонять через middleware в котором проверяется включен бот или выключен.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы