我发现workerman 运行一段时间后查看status 就出现not run
$ php start.php status
Workerman status
Workerman not run
用户定义信号 2
通过netstat -tunlp |grep 1081 命令发现程序仍然在运行
$netstat -tunlp |grep 1081
tcp 0 0 0.0.0.0:1081 0.0.0.0:* LISTEN 6766/php
我觉得这里应该是找不到pid文件文件了,pid文件应该是存在/tmp文件夹下,所以我想知道在centos 7 系统下多久清理一次/tmp文件夹。【ps:cetnos 7 默认是没有安装tmpwatch这个命令的 (用来定时清理/tmp)】
可以手动设置 pid文件位置,这样可以避免pid文件被清理
http://doc3.workerman.net/worker-development/pid_file.html
好,明白了。谢谢 。
遇见 status not run 的问题..
启动正常..
我看了..
这个文件不存在..
跟 pid 没有关系吧
这是啥原因啊???
workerman启动后会向 http://php.net/manual/zh/function.sys-get-temp-dir.php 函数返回的目录中写入pid文件和状态文件
你的环境 sys_get_temp_dir() 返回的路径不存在
创建一个目录就好了
情况是这样的...
/var/folders/t2/v7bvy5_j3mv_087_qms44s1h0000gp/T/
这个目录是创建成功了..
pid 文件也生成了.
只是状态文件没有生成..
mac 系统么?
刚给公司一位同事定位,php 5.5.29 的stream_slelect 有bug,调用这个函数会导致进程异常退出。
换个版本试下吧。
那是我...哈哈
好吧