linux下查看端口占用情况以及服务启动的目录
1.先介绍几个命令:
1. lsof -i:80
查看80端口的占用情况
命令返回结果:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
nginx 46678 xiaoju 7u IPv4 3292095214 0t0 TCP *:http (LISTEN)
2. netstat -lpn | grep 80
查看80端口服务端socket占用状况
netstat命令介绍见http://man.linuxde.net/netstat,其中注意有-a的时候-l过滤是无效的,所以要加-l就去掉-a。
命令返回结果:
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 46678/nginx: worker
3. ll /proc/46778
查看PID为46778的进程服务运行命令的目录和命令等信息
命令介绍见:https://www.douban.com/note/409387658/
2. 常见case:
case1: 一台机器上启动了好多个shop服务,如下,想知道每个服务分别占用什么端口
[xiaoju@rico-public order]$ ps -ef |grep shop
xiaoju 15061 1 3 Jun12 ? 07:49:08 ./bin/shop -config=./conf/service.conf.dev.liantiao
xiaoju 17279 1 3 17:54 ? 00:11:43 ./bin/shop -config=./conf/service.conf.dev
xiaoju 19776 1 4 Jun15 ? 06:56:42 /home/xiaoju/shop/output/bin/shop -config=/home/xiaoju/shop/output/conf/service.conf
xiaoju 37919 1 2 Jun15 ? 03:14:06 ./bin/shop -config=/home/xiaoju/shop_8407/output/conf/service.conf.dev.8407
解决办法:
[xiaoju@rico-public order]$ netstat -npl | grep shop
(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
tcp 0 0 0.0.0.0:8420 0.0.0.0:* LISTEN 17279/./bin/shop
tcp 0 0 0.0.0.0:8401 0.0.0.0:* LISTEN 19776/shop
tcp 0 0 0.0.0.0:8402 0.0.0.0:* LISTEN 15061/./bin/shop
tcp 0 0 0.0.0.0:8407 0.0.0.0:* LISTEN 37919/./bin/shop
这样就知道每个shop服务占用的是哪个端口(netstat最后一列是pid,pid与ps -ef出来的pid一一对应)
[xiaoju@rico-public order]$ ll /proc/17279
lrwxrwxrwx 1 xiaoju xiaoju 0 Jun 21 22:56 cwd -> /home/xiaoju/shop/output // 运行路径
lrwxrwxrwx 1 xiaoju xiaoju 0 Jun 21 22:53 exe -> /home/xiaoju/shop/output/bin/shop // 可执行文件
-r--r--r-- 1 xiaoju xiaoju 0 Jun 21 23:19 cmdline // 运行的命令,这个很重要
-r-------- 1 xiaoju xiaoju 0 Jun 21 23:18 environ // 运行时的环境变量
这个命令返回很多信息,这里只列了命令运行的路径和可执行文件路径。
case2:我想启动一个服务,服务需要占用8420端口,不知道这个端口有没有被占用,如占用是被什么程序占用
解决办法:
[xiaoju@rico-public order]$ lsof -i:8420
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
shop 17279 xiaoju 10u IPv4 3919976561 0t0 TCP *:8420 (LISTEN)
如果这条命令没有返回任何结果那么表明端口没被占用,如果返回信息,那么我们就可以看到PID
[xiaoju@rico-public order]$ ll /proc/17279
lrwxrwxrwx 1 xiaoju xiaoju 0 Jun 21 22:56 cwd -> /home/xiaoju/shop/output
lrwxrwxrwx 1 xiaoju xiaoju 0 Jun 21 22:53 exe -> /home/xiaoju/shop/output/bin/shop
-r--r--r-- 1 xiaoju xiaoju 0 Jun 21 23:19 cmdline
然后根据PID查到是被什么程序占用。
linux下查看端口占用情况以及服务启动的目录的更多相关文章
- Linux下查看端口占用情况
用启动服务的账号登录,然后运行命令: lsof -i:<端口号> 也可使用命令: netstat -apn|grep <端口号> 找到进程号以后,再使用以下命令查看详细信息: ...
- Linux下查看端口占用进程号,程序名的方法
Linux下查看端口占用进程号,程序名的方法,方便我们查找什么进程导致系统变慢等需要.linux下查看端口占用情况: 1. 查看哪个进程占用了819端口: case9-sghfofo:/usr/loc ...
- Mac下查看端口占用情况
为什么 后端开发时,有时会碰到服务无法正常启动,端口被占用.这时需要查看端口占用情况. 是什么 需要用到一些Linux命令. 怎么做 查看占用端口51805的进程 lsof -n -P -i TCP ...
- windows 下查看端口占用情况
windows下面查看端口占用情况: netstat -ano|findstr "8888" TCP 127.0.0.1:8888 0.0.0.0:0 LISTENING 6876 ...
- 【运维】linux命令查看端口占用情况,杀死进程,后台启动进程
1.查看端口占用情况:> lsof -i:port COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME ...
- 【linux】查看端口占用情况
netstat -nlp | grep "端口号"
- centos下查看端口占用情况,杀死进程
第一种:我们知道端口号用下面这种方法 有时候我们知道某个服务端口正在后台运行,想关掉它.比如说我tomcat是8080端口,在后台运行.怎么关掉它呢? 根据端口查看这个进程的pid netstat - ...
- Linux如何查看端口占用情况
Linux如何查看端口 1.lsof -i:端口号 用于查看某一端口的占用情况,比如查看8000端口使用情况,lsof -i:8000 # lsof -i:8000 COMMAND PID USER ...
- windows下查看端口占用情况及关闭相应的进程
经常,我们在启动应用的时候发现系统需要的端口被别的程序占用,如何知道谁占有了我们需要的端口,很多人都比较头疼,下面就介绍一种非常简单的方法. 例如:需要查看9001端口被谁占用,并将其进程强制关闭 在 ...
随机推荐
- AngularJs学习——何时应该使用Directive、Controller、Service?
翻译:大漠穷秋 原文链接:http://kirkbushell.me/when-to-use-directives-controllers-or-services-in-angular/ 一.简述 A ...
- linux网络编程系列-TCP/IP模型
### OSI:open system interconnection ### 开放系统互联网模型是由ISO国际标准化组织定义的网络分层模型,共七层 1. 物理层:物理定义了所有电子及物理设备的规范, ...
- Ubuntu pppoe 拨号上网
-------------蓝色是终端里面的连接方式,可以不看--------------------- ADSL上网,Ubuntu下是可以的,虽然以前没用过拨号上网,不过查了查也不是很麻烦. 打开终端 ...
- 利用os、hash模块生成目录下所有文件的md5
hashlib用于对字符串或者文件进行加密. 使用方法1: hashlib.md5('str').hexdigest() 使用MD5对str进行加密,使用hexdigest(),16进制的方式打印 ...
- C#区分大小写
连属性也是要区分大小写的,如 获取数据长度 错误:strs.length 这样是报错的 正确:strs.Length
- Oracle rman 全备份的一个小例子
run{ allocate channel d1 type disk; backup database format='/u01/backup/%T_%d_%s.bak'; sql 'alter ...
- 2.flume架构以及核心组件
flume组件主要包含三部分 source:从各个地方收集数据 channel:聚集,相当于临时数据存放的地方.因为数据来的时候,不可能来一条便写一次,那样效率太低,而是先把数据放在通道里,等通道满了 ...
- linux环境下,双击直连ping私有地址时候出现Destination host unreachable 解决办法
在确保网线无故障的情况下,采取以下步骤 1.查看本机的hostname vim /etc/sysconfig/network 2.编辑/etc/hosts vim /etc/hosts 加入以下 ...
- import module与from module import * 两种模块导入有何区别
#原创,转载请留言联系 区别1 import module 引用共享变量时,要使用module.变量名. 而from module import * 直接使用变量名即可 区别2(有点绕) import ...
- MyBatis入门实例 ——Mapper.xml(zz)
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBL ...