Задать вопрос
@kaka888
C, C++, Qt, Python, Flask, aiogram, MySQL, Redis..

Каким образом сервис из systemd проник в CRON?

Арендовал я 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
67c85994f37b4695215794.png

crontab -l
mxJKMVhr0XLy3spKlb_FhmAkUwDwKHzoLD2lRUv5KYG9zdB9wmKwPb7LFH5K9vttg6BzdCjn27Z0_sVXsgg8UcQlNY5o7iyxJBLMV64A238j7-Os4o3NRRg0jJpNcHQb5muig5lN3tlmfH_UG_57ZbzVy6lFfr3hCFvV6gUHV6N6ghRDE1a8-5tmZLNkJcDOwvuslLZiokIu2ov3gBv9sZ9wvEtPTdy8GPHdfbfMwS0IsUPl4M02w6KK2itaslJv8XvS3GPuhKYPZVf7hCWz58fkNnHZiN98dDNZcqVSCiIe2JGOxVwEeLXisaGI9nx-CDgGOdmtFAEDOF7fLG8vyg.jpg
  • Вопрос задан
  • 933 просмотра
Подписаться 4 Средний 21 комментарий
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы