【案例分析】Linux下怎样查看port占用情况
作者:zhanhailiang 日期:2014-11-08
基于express写一个測试server代码例如以下,可是执行失败,报“listen EADDRINUSE”。字面上理解是error address in use,说明当前你监听的port3000已经被使用了:
[root@~/wade/wadetest]# cat index.js
var express = require('express');
var app = express();
app.get('/', function(req, res){
res.send('hello world');
});
app.listen(3000, function() {
});
[root@~/wade/wadetest]# node index.js
events.js:72
throw er; // Unhandled 'error' event
^
Error: listen EADDRINUSE
at errnoException (net.js:904:11)
at Server._listen2 (net.js:1042:14)
at listen (net.js:1064:10)
at Server.listen (net.js:1138:5)
at EventEmitter.app.listen (/root/wade/wadetest/node_modules/express/lib/application.js:559:24)
at Object.<anonymous> (/root/wade/wadetest/index.js:8:5)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
尝试使用netstat查看当前机器port占用情况:
[root@~]# netstat -anop
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name Timer
tcp 0 0 0.0.0.0:6379 0.0.0.0:* LISTEN 5906/redis-server * off (0.00/0/0)
tcp 0 0 127.0.0.1:11211 0.0.0.0:* LISTEN 8023/memcached off (0.00/0/0)
tcp 0 0 0.0.0.0:6380 0.0.0.0:* LISTEN 26815/redis-server off (0.00/0/0)
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 2720/nginx off (0.00/0/0)
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 23854/sshd off (0.00/0/0)
tcp 0 0 0.0.0.0:3000 0.0.0.0:* LISTEN 6732/node off (0.00/0/0)
tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 2466/php-fpm off (0.00/0/0)
tcp 0 0 0.0.0.0:3690 0.0.0.0:* LISTEN 25447/svnserve off (0.00/0/0)
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 23376/mysqld off (0.00/0/0)
当中:
-n, --numeric don't resolve names
-p, --programs display PID/Program name for sockets
-a, --all, --listening display all sockets (default: connected)
-o, --timers display timers
由上可见。port3000被PID为6732的node进程占用。
接下来通过ps查询该进程的具体信息:
[root@~]# ps -f -p 6732
UID PID PPID C STIME TTY TIME CMD
root 6732 6703 0 Nov02 ? 00:00:00 node /root/wade/git/node-lessons/lesson1/app.js
[root@~/wade/wadetest]# ps -fp 6703
UID PID PPID C STIME TTY TIME CMD
root 6703 1 0 Nov02 ? 00:00:00 pm2: Daemon
当中:
-f full 表示输出进程完整信息,如上所看到的
-p by process ID 表示查询指定进程ID
最后。kill掉进程6703或停止pm2服务就可以正常执行上面的node演示样例:
[root@~/wade/git/node-lessons/lesson1]# pm2 kill
[PM2] Stopping PM2...
[PM2] Deleting all process
[PM2] deleteProcessId process id 0
[PM2] All processes has been stopped and deleted
[PM2] PM2 stopped
[root@~/wade/wadetest]# node index.js
例如以下图:
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYmlsbGZlbGxlcg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">
【案例分析】Linux下怎样查看port占用情况的更多相关文章
- linux下如何查看多核负载情况【转】
最近服务器负载超荷,CPU的单个荷使用率到了百分之八九十,内存占用超大,让给检测性能,不给源码,只给一个+ -g编译生成的执行文件,Fuck!!! 1, 在linux下载了valgrind,使用val ...
- windows 怎样查看port占用情况
開始--执行--cmd 进入命令提示符 输入netstat -ano 就可以看到全部连接的PID 之后在任务管理器中找到这个PID所相应的程序假设任务管理器中没有PID这一项,能够在任务管理器中选&q ...
- 【转】Linux下进程/程序网络带宽占用情况查看工具 -- NetHogs
http://www.cnblogs.com/carbon3/p/5930803.html 之前VPS侦探曾经介绍过流量带宽相关的工具如:iftop.vnstat,这几个都是统计和监控网卡流量的.但是 ...
- centos(linux) 下如何查看端口占用情况及杀死进程
使用这个命令:netstat -nap [root@Jaosn sphinx]# netstat -nap Active Internet connections (servers and estab ...
- Linux下进程/程序网络带宽占用情况查看工具 -- NetHogs
http://www.vpser.net/manage/nethogs.html 来自. 最后略有修改 之前VPS侦探曾经介绍过流量带宽相关的工具如:iftop.vnstat,这几个都是统计和监 ...
- 【linux】之查看磁盘占用情况
查看整个硬盘使用情况: 1.df -h 2.du -bs xx 具体目录占用情况 3.查看当前目录大于100M的文件 find . -size +100M
- 26. linux查看端口占用情况
linux系统下,查看端口占用情况的命令:lsof -i[root@www ~]# lsof -i
- 在windows和linux下如何查看80端口占用情况?是被哪个进程占用?如何终止等
一.在windows下如何查看80端口占用情况?是被哪个进程占用?如何终止等 这里主要是用到windows下的DOS工具,点击"开始"--"运行",输入&quo ...
- 在linux下,查看一个运行中的程序, 占用了多少内存
1. 在linux下,查看一个运行中的程序, 占用了多少内存, 一般的命令有 (1). ps aux: 其中 VSZ(或VSS)列 表示,程序占用了多少虚拟内存. RSS列 表示, 程序占用了多少物 ...
随机推荐
- linux下使用shell脚本自动化部署项目
在Java开发项目时经常要把正在开发的项目发布到测试服务器中去测试,一般的话是要把项目先打成war包,然后把war包发布到服务器中,关闭服务器, 最后重新启动服务器,虽然这过程不是很繁琐,但如果是多个 ...
- angular学习笔记(二十二)-$http.post
基本语法: $http.post('url',{},{}).success(function(data,status,headers,config){ }).error(function(data,s ...
- jquery50个代码段
1. 如何创建嵌套的过滤器 ? 1 //允许你减少集合中的匹配元素的过滤器, //只剩下那些与给定的选择器匹配的部分.在这种情况下, //查询删除了任何没(:not)有(:has) //包含class ...
- 基于python的接口测试框架设计(一)连接数据库
基于python的接口测试框架设计(一)连接数据库 首先是连接数据库的操作,最好是单独写在一个模块里, 然后便于方便的调用,基于把connection连接放在__init__()方法里 然后分别定义D ...
- jquery 给每个li增加事件
<ul id = "list-unstyled"> <li>aaa</li> <li>bbb</li> <li&g ...
- Android.util.Log 关于Android开发中打印log
日常Android开发真机调试过程经常会遇到系统日志过多过快,想看的内容一闪而过的问题.而自定义些log可以很好的解决这些问题. 代码中添加 log androidsdk中提供了log输出的ap ...
- iosxcode7以后免证书真机测试方法如下
步骤比较简单,我就简单总结一下. 1. 进入xcode,菜单栏选择xcode –> preferences (快捷键 command + ,)在Accounts选项卡添加自己的Apple ID ...
- PHP empty(),isset()与is_null()的实例测试
测试的类型如下: <?php $a; $b = false; $c = ''; $d = ; $e = null; $f = array(); ?> empty() 首先是empty的 ...
- 【Unity笔记】UGUI的自动布局功能
一些RectTransform的物体(UGUI元素)已经实现了ILayoutElement接口,如Image. 如果一个RectTransform的物体(UGUI元素)的其中一个组件实现了ILayou ...
- linux设置开机服务自动启动/关闭自动启动命令
linux设置开机服务自动启动/关闭自动启动命令 2012-02-06 15:13 [root@localhost ~]# chkconfig --list 显示开机可以自动启动的服务[roo ...