Tengo un problema en varios servidores (sucedió dos veces, uno por mes) donde, al iniciar Daily apt upgrade and clean activities
por algún motivo, se detiene mi servicio específico y luego nunca se inicia, por lo que se apaga y luego necesito iniciarlo manualmente.
En syslogs veo esto:
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 puede ver en el registro, cuando lo inicia, también inicia el demonio de eventos ACPI, que luego detiene Odoo 11
el servicio, pero este servicio permanece detenido, aunque no debería estarlo.
Y aquí está la configuración de systemd para el servicio 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
¿Quizás haya algún problema con la configuración del servicio start-stop de systemd? Aunque si ejecuto ese servicio yo mismo, funciona según lo previsto.
Respuesta1
Probablemente quieras utilizarlo Wants=
con tu dependencia del servicio PostgreSQL en lugar de Requires=
.
Con Wants=
, su aplicación no se detendrá solo porque PostgreSQL se detuvo o inició para una actualización de software.
Lea más sobre la distinción en man systemd.unit
.