Задать вопрос
ALLIGATOR
@ALLIGATOR

Systemd сервис/служба останавливается по непонятной причине. Почему?

Два раза за год была ситуация, что останавливался сервис systemd по непонятной причине и не запускался обратно автоматически
Сервис - вебсайт на flask(python)

Не могу проанализировать причину, кто останавливает сервис.

Содержимое
/etc/systemd/system/myservice.service :
[Unit]
Description=My Service
After=network-online.target
After=mysql.service
Requires=network-online.target
Requires=mysql.service

[Service]
User=root
WorkingDirectory=/home/myservice
ExecStart=/usr/bin/python3 /home/myservice/run.py
Restart=always

[Install]
WantedBy=multi-user.target


Вывод
journalctl -u myservice.service
ничего критичного не выводит, никаких критических завершений работы процесса.

Содержимое
syslog
в то время (Feb 4 06:18:19) когда сервис остановился без понятной причины: syslog @ pastebin

uname -a
Linux tasgas 5.4.0-97-generic #110-Ubuntu SMP Thu Jan 13 18:22:13 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux

Что инициировало останов сервиса? Как проанализировать что инициировало останов сервиса?

PS: Я не настоящий сис.админ, прошу помидорами не кидаться
  • Вопрос задан
  • 1051 просмотр
Подписаться 1 Средний 13 комментариев
Пригласить эксперта
Ответы на вопрос 2
@vitaly_il1
DevOps Consulting
в то время (Feb 4 06:18:19) когда сервис остановился без понятной причины:

Это сделали или пользователь или cronjob.
1) посмотрите .bash_history всех пользователей
2) посмотрите какие cron запускаются в это время (/var/spool/cron/crontabs или что-то похожее, плюс /etc/crontab , /etc/cron*)
Ответ написан
Комментировать
@ProFfeSsoRr
Сис.админ по Linux
У вас в логе есть такие строки:
Feb  4 06:18:19 ubuntu-server systemd[1]: Reloading.
Feb  4 06:18:19 ubuntu-server systemd[1]: Stopping My Service...
Feb  4 06:18:19 ubuntu-server systemd[1]: myservice.service: Succeeded.
Feb  4 06:18:19 ubuntu-server systemd[1]: Stopped My Service.
Feb  4 06:18:19 ubuntu-server systemd[1]: Stopping MySQL Community Server...
Feb  4 06:18:20 ubuntu-server systemd[1]: mysql.service: Succeeded.
Feb  4 06:18:20 ubuntu-server systemd[1]: Stopped MySQL Community Server.
Feb 4 06:18:20 ubuntu-server systemd[1]: Reloading.

Они говорят нам о том, что кто-то вызвал systemctl daemon-reload (а эту команду вызывают, когда редактируют файлы юнитов), а потом кто-то специально запустил остановку myservice и mysql сервисов. Соответственно никакая автоматизация вам тут не поможет, смотрите, кто логинился на сервер в это время, и спрашивайте у этого человека, что он редактировал и зачем останавливал ваше приложение.

P.S. от рута запускать код на питоне, да еще и с сетью работающий, судя по зависимостям - плохая идея. Выглядит так, будто у вас нет в компании сис.админа, который бы вам настроил нормально всё.
Ответ написан
Ваш ответ на вопрос

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

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