Итак, сегодня я начал веселый проект. Я хочу иметь возможность запускать и останавливать сервер майнкрафт, используя дискорд-бота. Чтобы запустить сервер, я решил использовать командный файл для выполнения команды. Это было достаточно просто сделать, и я смог убедиться, что он работает, так как я мог запустить его и присоединиться к серверу 'localhost'.
Следующим шагом было создание диска-диска в Python, я делал это раньше, и это тоже не заставило себя долго ждать. Я смог проверить на тестовом сервере разногласий, что бот отвечает на команды.
Последний шаг заключался в том, чтобы сделать команды диска-бота для запуска и остановки сервера. Я смог использовать библиотеку subprocess
для вызова командного файла и запуска сервера.
Моя проблема заключается в закрытии сервера. Я планировал использовать pid подпроцесса, чтобы убить его при запуске правильной команды. Однако я столкнулся с проблемой получения pid сервера, так как subprocess.pid () возвращает мне pid пакетного файла (я думаю). Когда я подключаюсь к серверу после попытки завершить его, я могу подключиться.
Есть ли способ получить pid процесса, запущенного с командным файлом? Если вам нужно увидеть код или пакетный файл, просто дайте мне знать!
Я также попытался выполнить команду, что пакетный файл запускается напрямую, но я борюсь с разрешениями, поэтому, если это лучшее решение, я не уверен .