Tenho problemas em vários servidores (aconteceu duas vezes, um por mês) onde iniciar Daily apt upgrade and clean activities
por algum motivo interrompe meu serviço específico e nunca mais o inicia, então ele está desligado e preciso iniciá-lo manualmente.
Em syslogs eu vejo isso:
Mar 7 06:59:24 server systemd[1]: Starting Daily apt upgrade and clean activities...
Mar 7 06:59:38 server systemd[1]: Reloading.
Mar 7 06:59:38 server systemd[1]: Started ACPI event daemon.
Mar 7 06:59:38 server systemd[1]: Stopping Odoo 11...
Mar 7 06:59:39 server systemd[1]: Stopped Odoo 11.
Mar 7 06:59:39 server systemd[1]: Stopped PostgreSQL RDBMS.
Mar 7 06:59:39 server systemd[1]: Stopping PostgreSQL Cluster 9.5-main...
Mar 7 06:59:41 server systemd[1]: Stopped PostgreSQL Cluster 9.5-main.
Mar 7 06:59:42 server systemd[1]: Reloading.
Mar 7 06:59:42 server systemd[1]: Starting Daily apt download activities...
Mar 7 06:59:42 server systemd[1]: Started ACPI event daemon.
Mar 7 06:59:42 server systemd[1]: Reloading.
Mar 7 06:59:42 server systemd[1]: Started ACPI event daemon.
Mar 7 06:59:42 server systemd[1]: Starting PostgreSQL Cluster 9.5-main...
Mar 7 06:59:45 server systemd[1]: Started PostgreSQL Cluster 9.5-main.
Mar 7 06:59:45 server systemd[1]: Starting PostgreSQL RDBMS...
Mar 7 06:59:45 server systemd[1]: Started PostgreSQL RDBMS.
Mar 7 06:59:51 server systemd[1]: Started Daily apt upgrade and clean activities.
Mar 7 06:59:59 server systemd[1]: Started Daily apt download activities.
Como você pode ver no log, quando ele inicia, ele também inicia o daemon de eventos ACPI, que então interrompe Odoo 11
o serviço, mas esse serviço permanece parado, mesmo que não devesse.
E aqui está a configuração do systemd para o serviço Odoo 11:
[Unit]
Description=Odoo 11
Requires=postgresql.service
After=postgresql.service
[Service]
Type=simple
PermissionsStartOnly=true
User=odoo
Group=odoo
SyslogIdentifier=odoo11
ExecStart=/opt/odoo/venv/bin/python3 /opt/odoo/odoo/odoo-bin -c /etc/odoo11.conf
[Install]
WantedBy=multi-user.target
Talvez algo errado com a configuração do serviço start-stop do systemd? Porém, se eu mesmo executar esse serviço, ele funcionará conforme o esperado.
Responder1
Você provavelmente deseja usar Wants=
com sua dependência de serviço PostgreSQL em vez de Requires=
.
Com Wants=
, seu aplicativo não será interrompido apenas porque o PostgreSQL foi interrompido/iniciado para uma atualização de software.
Leia mais sobre a distinção em man systemd.unit
.