运行 Workman 的 web-msg-sender 应用报错,错误信息如下:
stream_socket_server(): unable to connect to tcp://0.0.0.0:2340 (Address already in use) in file /www/workman/web-msg-sender/vendor/workerman/workerman/Worker.php on line 2244
我的 2340 端口是确认给这个应用使用的,并不存在其他程序占用的情况。虽然我已经使用官方的命令php start.php stop
停止了服务,但看起来进程并没有正确停止。
解决办法很简单,就是找到并杀死进程。具体步骤如下:
1、查找占用端口的进程 pid
我的系统是ubuntu,通过 lsof -i :端口号
即可查询占用端口的进程信息。
ubuntu@10-61-236-96:/www/workman/web-msg-sender$ lsof -i :2340
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
php 127399 ubuntu 4u IPv4 161576 0t0 TCP *:2340 (LISTEN)
2、根据 pid 杀掉进程
ubuntu@10-61-236-96:/www/workman/web-msg-sender$ kill -9 127399
之后再次尝试启动,应用恢复正常运行。