Вопрос или проблема
У меня есть несколько скриптов на Python, которые должны работать на моем VPS-сервере одновременно, но через модуль screen неудобно мониторить их всех, так как каждый может остановиться. Я хотел бы найти какую-то панель, где можно запускать, останавливать скрипты и следить за их консолью. Возможно ли найти такую?
Я пытался найти это в гугле, но не нашел ничего полезного.
Ответ или решение
Для мониторинга и управления несколькими Python-скриптами на вашем VPS-сервере под управлением Ubuntu 22.04 можно использовать несколько подходов. Я приведу несколько инструментов и методов, которые позволят вам эффективно контролировать, запускать и останавливать ваши скрипты, а также следить за их выводом.
1. Использование tmux
tmux
— это терминальный мультиплексор, который позволяет создавать отдельные сеансы, где вы можете запускать разные скрипты. Это удобнее, чем screen
, и предоставляет больше возможностей. Вот как его установить и использовать:
-
Установка:
sudo apt update sudo apt install tmux
-
Запуск нового сеанса:
tmux new -s mysession
-
Создание нового окна для каждого скрипта:
Внутриtmux
используйте:Ctrl-b c # Создание нового окна
-
Переключение между окнами:
Ctrl-b n # Следующее окно Ctrl-b p # Предыдущее окно
-
Выход из
tmux
:
Чтобы отсоединиться от сеанса, просто введите:Ctrl-b d
Чтобы снова подключиться к сеансу:
tmux attach -t mysession
2. Использование supervisord
supervisord
— это система управления процессами, которая может автоматически перезапускать ваши скрипты в случае их остановки, а также позволять вам управлять ими через веб-интерфейс.
-
Установка:
sudo apt install supervisor
-
Настройка конфигурации:
Создайте конфигурационный файл для вашего скрипта в/etc/supervisor/conf.d/
:[program:my_script] command=python3 /path/to/your_script.py autostart=true autorestart=true stderr_logfile=/var/log/my_script.err.log stdout_logfile=/var/log/my_script.out.log
-
Перезапуск Supervisor:
sudo supervisorctl reread sudo supervisorctl update sudo supervisorctl start my_script
-
Мониторинг через веб-интерфейс (настраивается дополнительно).
3. Использование systemd
Если ваши скрипты достаточно стабильны, вы можете использовать systemd
для управления ими как сервисами.
-
Создайте юнит-файл:
В/etc/systemd/system/my_script.service
добавьте следующее:[Unit] Description=My Python Script [Service] ExecStart=/usr/bin/python3 /path/to/your_script.py Restart=always [Install] WantedBy=multi-user.target
-
Перезагрузите конфигурацию:
sudo systemctl daemon-reload
-
Запустите и включите сервис:
sudo systemctl start my_script sudo systemctl enable my_script
-
Просмотр логов:
Используйтеjournalctl
для просмотра логов сервиса:journalctl -u my_script.service -f
Заключение
Каждое из этих решений имеет свои преимущества. tmux
и screen
удобны для интерактивной работы, в то время как supervisord
и systemd
предоставляют более автоматизированное и надежное решение для управления процессами. Выбор наиболее подходящего инструмента зависит от вашего рабочего процесса и требований к мониторингу.