Арендовал я VPS на Ubuntu, настроил файрвол, поставил длинный пароль на SSH. Поднял под рутом на этом сервере Telegram-бота на Python aiogram + контейнеры с MySQL и Redis (исправление ufw-docker имеется).
Скрипт
/root/bot/run_bot.sh
, который запускает бота (командой
python /root/bot/bot/bot.py
) и контейнеры (MySQL и Redis), поместил в созданный специально для этого бота systemd-сервис. Сделал
systemctl enable telegrambot.service
.
Пару недель всё работало хорошо.
Но в какой-то момент на сервере стало крутиться 2 процесса python вместо одного. Заметил это благодаря тому, что логи бота перестали адекватно работать. Я долго искал причину двойного автозапуска бота, и выяснил: каким-то образом в конце файла планировщика задач CRON (команда
crontab -l
) появилась строка:
@reboot /root/bot/run_bot.sh
Я немного прифигел, ведь до этого момента я никогда в жизни не работал с CRON и даже не знал что это. Доступ к серверу был только у меня. В файле .bash_history ничего связанного с CRON я не нашёл.
В итоге никакой информации я больше выяснить не смог, и решил просто закомментировать эту строчку в crontab, и теперь лишнего процесса python нет, и всё хорошо.
Буду рад, если кто-нибудь объяснит мне, как это могло произойти.
/etc/systemd/system/telegrambot.service