Der spezifische Systemctl-Dienst wird nach täglichen Aktualisierungen und sauberen Aktivitäten gestoppt

663
Andrius

Ich habe ein Problem mit mehreren Servern (es passierte zweimal, einer pro Monat), bei dem der Start Daily apt upgrade and clean activitiesaus irgendeinem Grund meinen spezifischen Dienst stoppt und dann nie startet. Er wird also ausgeschaltet und muss manuell gestartet werden.

In syslogs sehe ich folgendes:

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. 

Wie Sie im Protokoll sehen können, startet der ACPI-Ereignisdämon beim Starten des Odoo 11Diensts. Der Dienst wird jedoch angehalten. Dieser Dienst bleibt jedoch angehalten, auch wenn dies nicht der Fall ist.

Und hier ist systemd config für den Odoo 11-Dienst:

[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 

Möglicherweise stimmt etwas nicht mit dem systemd Start-Stopp-Dienst config? Wenn ich diesen Dienst selbst leite, funktioniert er wie beabsichtigt.

1

1 Antwort auf die Frage

1
Mark Stosberg

Sie möchten wahrscheinlich Wants=mit Ihrer PostgreSQL-Dienstabhängigkeit statt verwenden Requires=.

Mit Wants=wird Ihre App nicht angehalten, nur weil PostgreSQL für ein Software-Upgrade gestoppt / gestartet wurde.

Lesen Sie mehr über die Unterscheidung in man systemd.unit.