У меня возникла проблема на нескольких серверах (это произошло дважды, один раз в месяц), когда запуск Daily apt upgrade and clean activities
по какой-то причине останавливает определенную службу, а затем она больше не запускается, поэтому она отключается, и мне приходится запускать ее вручную.
В системных журналах я вижу следующее:
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
службу, но эта служба остается остановленной, хотя этого и не должно быть.
А вот конфигурация systemd для сервиса 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
Может быть, что-то не так с конфигурацией systemd start-stop service? Хотя если я сам запускаю эту службу, она работает как надо.
решение1
Вероятно, вы захотите использовать его Wants=
вместе с зависимостью службы PostgreSQL вместо Requires=
.
Благодаря этому Wants=
ваше приложение не будет остановлено только потому, что PostgreSQL был остановлен/запущен для обновления программного обеспечения.
Подробнее об этом различии читайте в man systemd.unit
.