对于Varnish,我看到两个进程正在运行,一个是其他进程的子进程,
nobody 10499 23634 0 22:25 ? 00:00:00 varnishd -f /etc/varnish/default.vcl -s malloc,1G -T 127.0.0.1:2000 -a 0.0.0.0:80 root 23634 1 0 19:33 ? 00:00:00 varnishd -f /etc/varnish/default.vcl -s malloc,1G -T 127.0.0.1:2000 -a 0.0.0.0:80
它实际上如何运作?
Varnish有两个主要过程:管理过程和子过程。管理过程应用配置更改(VCL和参数),编译VCL,监视Varnish,初始化Varnish并提供命令行界面,可直接在终端上或通过管理界面访问。
管理进程每隔几秒钟轮询一次子进程,以查看它是否仍然存在。如果在合理的时间内没有得到答复,则管理过程将杀死该孩子并重新启动它。如果孩子意外退出,例如由于分段错误或断言错误,也会发生同样的情况。
这样可以确保即使Varnish确实包含严重错误,它也将快速重新启动。通常在几秒钟内,具体取决于条件。