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

unable to connect to tcp://0.0.0.0:2346(Address already in use)

yaxiaomu

http_server_test.php 代碼

use Workerman\Worker;
require_once __DIR__ . '/Autoloader.php';

// Worker::$daemonize = true;
// 創(chuàng)建一個Worker監(jiān)聽2345端口,使用http協(xié)議通訊
$http_worker2 = new Worker("http://0.0.0.0:2346");

$http_worker2->name='25k_step2222';

$http_worker2->user='root';

$http_worker2->count = 3;

$http_worker2->onMessage = function($connection, $data)
{
    // 向瀏覽器發(fā)送hello world
    $connection->send('hello world from worker2');
};

// 啟動4個進程對外提供服務
$http_worker1 = new Worker("http://0.0.0.0:2345");
$http_worker1->count = 5;
$http_worker1->name='25k_step1';
$http_worker1->user='www-data';
// 接收到瀏覽器發(fā)送的數據時回復hello world給瀏覽器
$http_worker1->onMessage = function($connection, $data)
{
    // 向瀏覽器發(fā)送hello world
    $connection->send('hello world from worker 1');
};

// 運行worker
Worker::runAll();

非deamon模式,PHP 7.0.18-0ubuntu0.16.04.1 (cli) ( NTS )
以下為自己打印的日志
oot@ubuntu:/home/tb/wwwshare/Workerman-master# php http_test.php start

init 也走一次
狀態(tài)收集文件在/tmp/_home_tb_wwwshare_Workerman-master_http_test.php.status
日志文件在/home/tb/wwwshare/Workerman-master/../workerman.log
pid文件在=/home/tb/wwwshare/Workerman-master/../_home_tb_wwwshare_Workerman-master_http_test.php.pid
當前pid1646
當前所有worker實例{"000000001f58c239000000000dddedce":{"id":0,"name":"25k_step2222","count":3,"user":"root","group":"","reloadable":true,"reusePort":false,"onWorkerStart":null,"onConnect":null,"onMessage":{},"onClose":null,"onError":null,"onBufferFull":null,"onBufferDrain":null,"onWorkerStop":null,"onWorkerReload":null,"transport":"tcp","connections":[],"protocol":null,"workerId":"000000001f58c239000000000dddedce"},"000000001f58c23b000000000dddedce":{"id":0,"name":"25k_step1","count":5,"user":"www-data","group":"","reloadable":true,"reusePort":false,"onWorkerStart":null,"onConnect":null,"onMessage":{},"onClose":null,"onError":null,"onBufferFull":null,"onBufferDrain":null,"onWorkerStop":null,"onWorkerReload":null,"transport":"tcp","connections":[],"protocol":null,"workerId":"000000001f58c23b000000000dddedce"}}
initd只走一次,不管new了多少個woker
timer_init pcntl_signal,— 為進程: 1646安裝一個sigalrm信號
pcntl_signal(SIGALRM 完畢
我啟動 Workerman start 用 DEBUG 模式
先獲取下進程pid1634
我啟動時沒有用了-d模式啟動,那這句話會輸出
沒有設置demoniz,直接返回2-1
workername: 25k_step2222 changelength: 12
socketname: http://0.0.0.0:2346 changemaxlength: 19
當前用戶id: 0 當前進程執(zhí)行用戶 {"name":"root","passwd":"x","uid":0,"gid":0,"gecos":"root","dir":"\/root","shell":"\/bin\/bash"}人為設置的當前進程用戶: root
沒有reuseport,調用listen 在initWorkers
listen begin================================================listen begin
transport: tcp scheme: http address : //0.0.0.0:2346
當前scheme http不在{"tcp":"tcp","udp":"udp","unix":"unix","ssl":"tcp"}那默認transport全都是:tcp
this的protocal設置為 :\Protocols\Http
\Protocols\Http這個類不存在,我需要再設置一下
this的protocal設置又被設置為 :\Workerman\Protocols\Http
所以到現(xiàn)在我的local_socket為: tcp://0.0.0.0:2346
PHP Warning: stream_socket_server(): unable to connect to tcp://0.0.0.0:2346 (Address already in use) in /home/tb/wwwshare/Workerman-master/Worker.php on line 2440

root@ubuntu:/home/tb/wwwshare/Workerman-master# netstat -anp |grep 2345
tcp        0      0 0.0.0.0:2345            0.0.0.0:*               LISTEN      1635/0.0.0.0:2346
root@ubuntu:/home/tb/wwwshare/Workerman-master# netstat -anp |grep 2346
tcp        0      0 0.0.0.0:2345            0.0.0.0:*               LISTEN      1635/0.0.0.0:2346
tcp        0      0 0.0.0.0:2346            0.0.0.0:*               LISTEN      1635/0.0.0.0:2346
unix  3               STREAM     CONNECTED     18804    1635/0.0.0.0:2346   
unix  3               STREAM     CONNECTED     18805    1635/0.0.0.0:2346   
root@ubuntu:/home/tb/wwwshare/Workerman-master# 

oot@ubuntu:/home/tb/wwwshare# kill 1635
root@ubuntu:/home/tb/wwwshare#  對進程1635發(fā)送了SIGTERM 信號(平滑 重啟)

已經看了手冊 :http://doc3.workerman.net/faq/workerman-start-fai
如果執(zhí)行了reload 或者restart 也不行,刪除pid文件也不行,killallphp 也不行 kill pid內的進程已經無效,關掉當前會話窗口也不行。。求教。。出現(xiàn)這個原因是啥?生產環(huán)境也有類似的問題。

最后解決辦法是用top,發(fā)現(xiàn)一個php占用內存達到70%以上,kill 掉之后,一切正常。

8514 2 0
2個回答

walkor 打賞

unable to connect to tcp://0.0.0.0:2346(Address already in use) 就是端口被占用了。

netstat -anp |grep 2346 找到對應進程,看下是什么進程,
利用命令 ps auxf 看下進程關系是什么,是誰創(chuàng)建的這個進程。
如果確實是沒用的進程,kill -9就殺死了。

  • 暫無評論
workerstar

要么端口已被其他程序占用,更換端口;要么就是有多個start_*.php文件,多個文件都用一個端口自然報錯。

  • suanboy 2022-01-25

    肯定有個tcp服務端已經在跑了,找到這個進程,把進程結束掉,就能正常啟動了

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