我为我的mean-io堆栈应用程序运行gulp。
我收到以下错误。
13:15:54] Starting 'server'...
13:15:54] Finished 'server' after 47 ms
13:15:54] Live reload server listening on: 35729
.. Uhoh. Got error listen EADDRINUSE ...
rror: listen EADDRINUSE
at errnoException (net.js:901:11)
at Server._listen2 (net.js:1039:14)
at listen (net.js:1061:10)
at Server.listen (net.js:1127:5)
我猜其他应用程序正在使用端口35729。我对吗?我也尝试更改livereload.js中的端口号。但是,我得到了同样的错误。
以下是文件,我看到分配的35729端口号。如果要在任何地方更改端口号,请告诉我。
myApp\node_modules\grunt-contrib-watch\node_modules\tiny-lr-fork\lib\public\livereload.js:
321: this.port = 35829;
myApp\node_modules\grunt-contrib-watch\node_modules\tiny-lr-fork\lib\server.js
20: options.port = parseInt(options.port || 35729, 10);
myApp\node_modules\grunt-contrib-watch\node_modules\tiny-lr-fork\node_modules\noptify\index.js:
21: // .option('port', '-p', 'Port to listen on (default: 35729)', Number)
myApp\node_modules\grunt-contrib-watch\node_modules\tiny-lr-fork\bin\tiny-lr:
14: .option('port', '-p', 'Port to listen on (default: 35729)', Number)
18: opts.port = opts.port || 35729;
感谢。
答案 0 :(得分:9)
使用pandas.DataFrame
时,我发现有时终止我的进程将无法关闭gulp
端口35729上的连接。这会在该端口上侦听一个打开的文件描述符,因为livereload
会在启动gulp
后立即投诉,因此很难重新启动我的服务器。
有时您不知道拥有该连接的进程的名称,因此很难找到并杀死它。要列出使用TCP在端口上侦听的处理器打开的文件,可以使用livereload
命令。在这种情况下,您得到:
lsof -n -i4TCP:#####
现在您拥有正在侦听您尝试访问的端口的进程的PID,因此您可以使用
来终止此操作$ lsof -n -i4TCP:35729
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
node 15723 testuser 24u IPv6 0x71823b3990749ea5 0t0 TCP *:35729 (LISTEN)
现在正在运行$ kill -9 15723
应该可以正常工作:)
答案 1 :(得分:1)
(gulp-express)35729
livereload服务器使用的端口tiny-lr
。您需要禁用tiny-lr
livereload服务器。
而不是
server.run(['app.js']);
启动服务器时可以执行此操作:
server.run(['app.js'], {}, false|35729|{});
false
表示已禁用tiny-lr
livereload服务器。
答案 2 :(得分:0)
我在gulpexpress/index.js
进行了更改,端口号更改为35829.它有效。
对于两个不同的进程,似乎相同的端口号35729被多次使用。
答案 3 :(得分:0)