unicorn + systemd:unicorn 升级后丢失日志记录

unicorn + systemd:unicorn 升级后丢失日志记录

我第一次用systemd部署unicorn(实际上,这是我第一次使用systemd),并且我正在使用unicorn的“零停机升级”绝招,或者基本上:

  • 发送USR2到主进程
  • 这会导致产生新的 master 和workers,旧的 pidfile 被重命名,新的 pidfile 反映新 master 的 PID
  • 向旧master发送QUIT
  • 这会导致旧的worker处理当前的请求并退出,并且旧的master死亡

这一切都工作得很好,除了一件事:systemd 的日志捕获 (for systemctl status) 看不到新进程的输出。我猜这是因为它没有参与切换过程或其他什么?

系统查看新主机的 PID 并正确跟踪它。

如果我preload_app = false在 unicorn 的配置中设置并仅 HUP master(这不会更改 master 的 PID),则一切都很好 - 但这并不能解决我实际上想要升级 unicorn 的情况。

如果重要的话,我没有独角兽守护进程,并且Type=simple在我的单元配置文件中。

有什么方法可以让 systemd 将自身附加到新 master 的日志输出吗?

相关内容