workerman关闭失败

广告:宝塔服务器面板,一键全能部署及管理,送你10850元礼包,点我领取~~~

workerman关闭失败

运行 php start.php stop 提示 stop fail

原因:几种可能性 (推荐学习: workerman教程)

第一种可能性:

前提是以debug方式启动的workerman,开发者在终端按了ctrl z给workerman发送了SIGSTOP信号,导致workerman进入后台并挂起(暂停),所以无法响应stop命令(SIGINT信号)。

解决:

在启动workerman的终端输入fg(发送SIGCONT信号)然后回车,将workerman切回前台运行,按ctrl c(发送SIGINT信号)停止workerman。

如果无法停止,尝试运行以下两条命令

killall -9 phpps aux|grep -i workerman|awk '{print $2}'|xargs kill -9
登录后复制

第二种可能性:

运行stop的用户和workerman启动用户不一致,即stop用户没有权限停止workerman。

解决:

切换到启动workerman的用户,或者用权限更高的用户停止workerman。

第三种可能性:

保存workerman主进程pid文件被删除,导致脚本找不到pid进程,导致停止失败。

解决:

将pid文件保存到安全的位置,参见手册Worker::$pidFile。

第四种可能性:

workerman主进程pid文件对应的进程不是workerman进程。

解决:

打开workerman的主进程的pid文件查看主进程pid,pid文件默认在Workerman平行的目录里。

运行命令 ps aux | grep 主进程pid 查看对应的进程是否是Workerman进程,如果不是,可能是服务器重启过,导致workerman保存的pid是过期的pid,而这个pid刚好被其它进程使用,导致停止失败。如果是这种情况,将pid文件删除即可。

以上就是workerman关闭失败的详细内容,更多请关注9543建站博客其它相关文章!

9543建站博客
一个专注于网站开发、微信开发的技术类纯净博客。
作者头像
admin创始人

肥猫,知名SEO博客站长,14年SEO经验。

上一篇:swoole是做什么的
下一篇:详解iOS微信支付开发案例代码

发表评论

关闭广告
关闭广告