您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關workerman關閉失敗怎么辦,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
運行 php start.php stop 提示 stop fail
原因:幾種可能性
第一種可能性:
前提是以debug方式啟動的workerman,開發者在終端按了ctrl z給workerman發送了SIGSTOP信號,導致workerman進入后臺并掛起(暫停),所以無法響應stop命令(SIGINT信號)。
解決:
在啟動workerman的終端輸入fg(發送SIGCONT信號)然后回車,將workerman切回前臺運行,按ctrl c(發送SIGINT信號)停止workerman。
如果無法停止,嘗試運行以下兩條命令
killall -9 php ps 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關閉失敗怎么辦”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。