複数のサーバーで問題が発生し(月に1回、2回発生)、何らかの理由でDaily apt upgrade and clean activities
を開始すると特定のサービスが停止し、その後開始されないため、サービスがオフになり、手動で開始する必要があります。
Syslogでは、次のように表示されます。
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.
ログからわかるように、それを開始すると、ACPIイベントデーモンも開始し、Odoo 11
サービスを停止しますが、このサービスは停止したままになります。
そして、これがOdoo11サービスのsystemdconfigです。
[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
たぶんsystemdのstart-stopservice configに何か問題がありますか?そのサービスを自分で実行すると、意図したとおりに機能します。
おそらく、Wants=
の代わりにRequires=
をPostgreSQLサービスの依存関係で使用することをお勧めします。
Wants=
を使用すると、ソフトウェアのアップグレードのためにPostgreSQLが停止/開始されたからといって、アプリが停止することはありません。
違いについて詳しくは、man systemd.unit
をご覧ください。