daemonize

守护进程化。设置daemonize => 1时,程序将转入后台作为守护进程运行。长时间运行的服务器端程序必须启用此项。

如果不启用守护进程,当ssh终端退出后,程序将被终止运行。

systemd

使用systemd管理Swoole服务时,请勿设置daemonize = 1。主要原因是systemd的机制与init不同。init进程的PID1,程序使用daemonize后,会脱离终端,最终被init进程托管,与init关系变为父子进程关系。

systemd是启动了一个单独的后台进程,自行fork管理其他服务进程,因此不需要daemonize,反而使用了daemonize = 1会使得Swoole程序与该管理进程失去父子进程关系。