Ich habe auf mehreren Servern ein Problem (es ist zweimal passiert, einmal pro Monat), wo Daily apt upgrade and clean activities
mein spezieller Dienst aus irgendeinem Grund beim Starten gestoppt wird und dann nie wieder gestartet wird. Er wird also ausgeschaltet und ich muss ihn dann manuell starten.
In den 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 dem Protokoll entnehmen können, wird beim Start auch der ACPI-Ereignisdaemon gestartet, der dann Odoo 11
den Dienst stoppt. Dieser Dienst bleibt jedoch gestoppt, obwohl dies nicht der Fall sein sollte.
Und hier ist die Systemd-Konfiguration 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
Vielleicht stimmt etwas mit der Start-Stopp-Dienstkonfiguration von systemd nicht? Wenn ich diesen Dienst jedoch selbst ausführe, funktioniert er wie vorgesehen.
Antwort1
Wants=
Sie möchten wahrscheinlich anstelle von mit Ihrer PostgreSQL-Dienstabhängigkeit verwenden Requires=
.
Mit Wants=
wird Ihre App nicht gestoppt, nur weil PostgreSQL für ein Software-Upgrade gestoppt/gestartet wurde.
Lesen Sie mehr über den Unterschied in man systemd.unit
.