ThinkChat🤖让你学习和工作更高效,注册即送10W Token,即刻开启你的AI之旅 广告
# daemonize [TOC] 守护进程化。设置`daemonize => 1`时,程序将转入后台作为守护进程运行。长时间运行的服务器端程序必须启用此项。 如果不启用守护进程,当ssh终端退出后,程序将被终止运行。 * 启用守护进程后,标准输入和输出会被重定向到`log_file` * 如果未设置`log_file`,将重定向到`/dev/null`,所有打印屏幕的信息都会被丢弃 * 启用守护进程后,`CWD`(当前目录)环境变量的值会发生变更,相对路径的文件读写会出错。PHP程序中必须使用绝对路径 ## systemd 使用`systemd`管理`Swoole`服务时,请勿设置`daemonize = 1`。主要原因是`systemd`的机制与`init`不同。`init`进程的`PID`为`1`,程序使用`daemonize`后,会脱离终端,最终被`init`进程托管,与`init`关系变为父子进程关系。 但`systemd`是启动了一个单独的后台进程,自行`fork`管理其他服务进程,因此不需要`daemonize`,反而使用了`daemonize = 1`会使得`Swoole`程序与该管理进程失去父子进程关系。