php start.php status not run

lambda

我发现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)】

7227 6 0
6个回答

walkor

可以手动设置 pid文件位置,这样可以避免pid文件被清理
http://doc3.workerman.net/worker-development/pid_file.html

  • 暂无评论
lambda

好,明白了。谢谢 。

  • 暂无评论
zhangxiaoman

遇见 status not run 的问题..

➜  WorkerMan_Demo  php start.php start -d
Workerman start in DAEMON mode
----------------------- WORKERMAN -----------------------------
Workerman version:3.1.9          PHP version:5.5.29
------------------------ WORKERS -------------------------------
user          worker        listen              processes status
zhangxiaoman  none          tcp://0.0.0.0:1234   4          
----------------------------------------------------------------
Input "php start.php stop" to quit. Start success.

启动正常..

 WorkerMan_Demo  php start.php status
Workerman status 
PHP Warning:  readfile(/var/folders/t2/v7bvy5_j3mv_087_qms44s1h0000gp/T/workerman.status): failed to open stream: No such file or directory in /Users/zhangxiaoman/WorkerMan_Demo/vendor/workerman/workerman/Worker.php on line 520
PHP Stack trace:

我看了..

/var/folders/t2/v7bvy5_j3mv_087_qms44s1h0000gp/T/workerman.status

这个文件不存在..

跟 pid 没有关系吧

这是啥原因啊???

  • 暂无评论
walkor

workerman启动后会向 http://php.net/manual/zh/function.sys-get-temp-dir.php 函数返回的目录中写入pid文件和状态文件
你的环境 sys_get_temp_dir() 返回的路径不存在

创建一个目录就好了

  • 暂无评论
zhangxiaoman

情况是这样的...

/var/folders/t2/v7bvy5_j3mv_087_qms44s1h0000gp/T/

这个目录是创建成功了..

pid 文件也生成了.

只是状态文件没有生成..

  • 暂无评论
walkor

mac 系统么?
刚给公司一位同事定位,php 5.5.29 的stream_slelect 有bug,调用这个函数会导致进程异常退出。
换个版本试下吧。

年代过于久远,无法发表回答
🔝