swoole學習過程中踩到的坑
阿新 • • 發佈:2019-01-23
坑
swManager_loop(:272): wait() failed.
[2017-09-02 13:41:19 #8475.2] NOTICE Server is shutdown now.
[2017-09-02 13:41:19 $8476.0] ERROR swManager_loop(:272): wait() failed. Error: Interrupted system call[4].
當前版本是1.8.11,在論壇中,有人也出現過這個問題,後來通過升級Swoole擴充套件的版本解決。
該錯誤不會影響到程式執行。
swFactoryProcess_finish (ERROR 1004)
ERROR swFactoryProcess_finish (ERROR 1004): send 5 byte failed, because session#1 is closed.
看錯誤資訊,應該是指傳送5byte的資料錯誤,原因是會話1已經關閉。
後來發現我的onclose
回撥中,有一句返回值$server->send($fd,"close");
。連線都已經關閉了,然後再發送close(剛好5位元組),就會報錯。
swoole_server must run at php_cli environment.
必須以shell的形式執行,php裡面只能通過exec
使用swoole_set_process_name
或者cli_set_process_title
設定程序名稱報錯
在終端報錯資訊
PHP Fatal error: Uncaught exception 'ErrorException' with message 'cli_set_process_title(): cli_set_process_title had an error: Not initialized correctly' in xxxx.php:94
macOs會遇到此問題,是macos因為安全問題,有些功能給禁止了,即時sudo了也不行,但是換了Linux系統,就可以
[root@227test WEDO_EZSVS_COM]# ps aux | grep mj
root 22004 0.2 0.8 513572 65632 pts/1 Tl 14:07 0:00 mjsystem
root 22011 0.0 0.3 439672 29284 pts/1 T 14:07 0:00 php artisan mj start
root 22017 0.0 0.3 442020 29556 pts/1 T 14:07 0:00 php artisan mj start
root 24954 0.0 0.0 112644 964 pts/1 S+ 14:09 0:00 grep --color=auto mj