1. 程式人生 > >swoole學習過程中踩到的坑

swoole學習過程中踩到的坑

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

函式去執行響應的php指令碼才行。

使用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