国产+高潮+在线,国产 av 仑乱内谢,www国产亚洲精品久久,51国产偷自视频区视频,成人午夜精品网站在线观看

phpsocket.io php7.4 停止失敗

ijob

phpsocket.io php7.3的時候一切正常;

切換成7.4以后,消息收發(fā)正常;
status、connections命令消息無任何顯示;
stop命令提示:stop fail。

3026 2 1
2個回答

walkor 打賞

現(xiàn)象:
運(yùn)行 php start.php stop 提示 stop fail

原因:幾種可能性
第一種可能性
前提是以debug方式啟動的workerman,開發(fā)者在終端按了ctrl z給workerman發(fā)送了SIGSTOP信號,導(dǎo)致workerman進(jìn)入后臺并掛起(暫停),所以無法響應(yīng)stop命令(SIGINT信號)。

解決:
在啟動workerman的終端輸入fg(發(fā)送SIGCONT信號)然后回車,將workerman切回前臺運(yùn)行,按ctrl c(發(fā)送SIGINT信號)停止workerman。

如果無法停止,嘗試運(yùn)行以下兩條命令

killall -9 php
ps aux|grep -i workerman|awk '{print $2}'|xargs kill -9

第二種可能性:
運(yùn)行stop的用戶和workerman啟動用戶不一致,即stop用戶沒有權(quán)限停止workerman。
解決:
切換到啟動workerman的用戶,或者用權(quán)限更高的用戶停止workerman。

第三種可能性:
保存workerman主進(jìn)程pid文件被刪除,導(dǎo)致腳本找不到pid進(jìn)程,導(dǎo)致停止失敗。
解決:
將pid文件保存到安全的位置,參見手冊Worker::$pidFile。

第四種可能性:
workerman主進(jìn)程pid文件對應(yīng)的進(jìn)程不是workerman進(jìn)程。

解決:
打開workerman的主進(jìn)程的pid文件查看主進(jìn)程pid,pid文件默認(rèn)在Workerman平行的目錄里。運(yùn)行命令 ps aux | grep 主進(jìn)程pid 查看對應(yīng)的進(jìn)程是否是Workerman進(jìn)程,如果不是,可能是服務(wù)器重啟過,導(dǎo)致workerman保存的pid是過期的pid,而這個pid剛好被其它進(jìn)程使用,導(dǎo)致停止失敗。如果是這種情況,將pid文件刪除即可。

參考手冊 http://doc.workerman.net/faq/stop-fail.html

  • ijob 2020-09-30

    這幾種都排查過,都未解決;

    執(zhí)行fg,提示no such job,但消息收發(fā)不受任何影響。

  • walkor 2020-09-30

    無法停止就kill掉,上面不是說了

  • ijob 2020-09-30

    kill掉,然后再啟動,然后還是無法停止;大哥,有沒有一勞永逸的解決方法,或者還是說7.4還暫時不兼容?

  • walkor 2020-09-30

    運(yùn)行php -v看下版本

  • ijob 2020-09-30

    7.4.10

  • walkor 2020-09-30

    php -m 貼下

ijob

并且還有一個問題,切換了php7.4以后,cpu經(jīng)常性跑滿。

  • walkor 2020-09-30

    如果確認(rèn)切換php版本的問題就把php版本換了

年代過于久遠(yuǎn),無法發(fā)表回答
??