我目前正在开发一个Symfony 4应用程序,它使用Symfony Messenger通过专门的工作人员来处理一些后台作业。
我使用systemd v241运行worker,配置如下:
[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。
你知道为什么和如何解决这个问题吗?
发布于 2021-01-25 16:54:39
未在负责启动服务的用户上启用Lingering。启用它已经解决了我的问题。
https://stackoverflow.com/questions/65720874
复制相似问题