TL;DR
Linux下,PHP多进程使用 file_put_contents()
方法记录日志时,使用追加模式(FILE_APPEND
),简短的日志内容不会重叠,即能安全的记录日志内容。
file_put_contents()
使用 write()
系统调用实现数据的写入,write()
系统调用对普通文件保证写入数据的完整性,O_APPEND
打开模式保证数据写入到文件末尾。
如果愿意的话,也可以考虑在标记位中使用 LOCK_EX
。
Linux下,PHP多进程使用 file_put_contents()
方法记录日志时,使用追加模式(FILE_APPEND
),简短的日志内容不会重叠,即能安全的记录日志内容。
file_put_contents()
使用 write()
系统调用实现数据的写入,write()
系统调用对普通文件保证写入数据的完整性,O_APPEND
打开模式保证数据写入到文件末尾。
如果愿意的话,也可以考虑在标记位中使用 LOCK_EX
。
Yaf
版本为 2.3.0
。
本篇主要简单记录了:
源码阅读过程中的一些问题和理解。
Yaf
版本为 2.3.0
。
本篇主要简单记录了:
源码阅读过程中的一些问题和理解。
PHP实现守护进程可以通过 pcntl
与 posix
扩展实现。
编程中需要注意的地方有:
pcntl_fork()
以及 posix_setsid
让主进程脱离终端pcntl_signal()
忽略或者处理 SIGHUP
信号pcntl_fork()
或者 pcntl_signal()
忽略 SIGCHLD
信号防止子进程变成 Zombie 进程umask()
设定文件权限掩码,防止继承文件权限而来的权限影响功能STDIN/STDOUT/STDERR
重定向到 /dev/null
或者其他流上如果要做的更好,还需要注意:
chdir()
防止操作错误路径