Symfony messenger 不会总是重启

问题描述

我目前正在开发一个 Symfony 4 应用程序,该应用程序使用 Symfony Messenger 来处理一些具有专门工作人员的后台作业。

我使用具有以下配置的 systemd v241 运行工作程序:

[Unit]
Description=Symfony Worker
StartLimitIntervalSec=0
StartLimitBurst=0

[Service]
WorkingDirectory=/symfony-app/current
ExecStart=/bin/bash -lc 'bin/console messenger:consume async --memory-limit=512M --time-limit=3600'
ExecStop=/bin/bash -lc 'bin/console messenger:stop-workers'
StandardOutput=syslog
StandardError=syslog
Restart=always
PrivateTmp=true
NoNewPrivileges=true
RestartSec=5s

[Install]
WantedBy=default.target

正如 documentation 中所写,worker 不能永远运行,因此它每小时或每次达到 512M 的内存限制时重新启动。

我的问题是它并不总是重新启动。有时会,但有时不会,我唯一得到的是日志中的 Main process exited,code=killed,status=15/TERM

知道为什么以及如何解决这个问题吗?

解决方法

Lingering 未对负责启动服务的用户启用。启用它解决了我的问题。