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下查看端口占用情况以及服务启动的目录的更多相关文章

  1. Linux下查看端口占用情况

    用启动服务的账号登录,然后运行命令: lsof -i:<端口号> 也可使用命令: netstat -apn|grep <端口号> 找到进程号以后,再使用以下命令查看详细信息: ...

  2. Linux下查看端口占用进程号,程序名的方法

    Linux下查看端口占用进程号,程序名的方法,方便我们查找什么进程导致系统变慢等需要.linux下查看端口占用情况: 1. 查看哪个进程占用了819端口: case9-sghfofo:/usr/loc ...

  3. Mac下查看端口占用情况

    为什么 后端开发时,有时会碰到服务无法正常启动,端口被占用.这时需要查看端口占用情况. 是什么 需要用到一些Linux命令. 怎么做 查看占用端口51805的进程 lsof -n -P -i TCP ...

  4. windows 下查看端口占用情况

    windows下面查看端口占用情况: netstat -ano|findstr "8888" TCP 127.0.0.1:8888 0.0.0.0:0 LISTENING 6876 ...

  5. 【运维】linux命令查看端口占用情况,杀死进程,后台启动进程

    1.查看端口占用情况:> lsof -i:port COMMAND    PID    USER    FD    TYPE   DEVICE    SIZE/OFF    NODE  NAME ...

  6. 【linux】查看端口占用情况

    netstat -nlp | grep "端口号"

  7. centos下查看端口占用情况,杀死进程

    第一种:我们知道端口号用下面这种方法 有时候我们知道某个服务端口正在后台运行,想关掉它.比如说我tomcat是8080端口,在后台运行.怎么关掉它呢? 根据端口查看这个进程的pid netstat - ...

  8. Linux如何查看端口占用情况

    Linux如何查看端口 1.lsof -i:端口号 用于查看某一端口的占用情况,比如查看8000端口使用情况,lsof -i:8000 # lsof -i:8000 COMMAND PID USER ...

  9. windows下查看端口占用情况及关闭相应的进程

    经常,我们在启动应用的时候发现系统需要的端口被别的程序占用,如何知道谁占有了我们需要的端口,很多人都比较头疼,下面就介绍一种非常简单的方法. 例如:需要查看9001端口被谁占用,并将其进程强制关闭 在 ...

随机推荐

  1. Sync Data to AWS S3 on Windows Box

    1. Install AWS CLI first, windows download link https://s3.amazonaws.com/aws-cli/AWSCLI64.msi 2. The ...

  2. 转载:Java中的String与常量池

    转载自http://developer.51cto.com/art/201106/266454.htm.感觉总结的不错,自己收藏一下. string是java中的字符串.String类是不可变的,对S ...

  3. Java并发(10)- 简单聊聊JDK中的七大阻塞队列

    引言 JDK中除了上文提到的各种并发容器,还提供了丰富的阻塞队列.阻塞队列统一实现了BlockingQueue接口,BlockingQueue接口在java.util包Queue接口的基础上提供了pu ...

  4. 打砖块(codevs 1257)

    题目描述 Description 在一个凹槽中放置了n层砖块,最上面的一层有n块砖,第二层有n-1块,……最下面一层仅有一块砖.第i层的砖块从左至右编号为1,2,……i,第i层的第j块砖有一个价值a[ ...

  5. HDU2546饭卡---(DP 经典背包)

    http://acm.hdu.edu.cn/showproblem.php?pid=2546 饭卡 Time Limit: 5000/1000 MS (Java/Others)    Memory L ...

  6. loj6029 「雅礼集训 2017 Day1」市场

    传送门:https://loj.ac/problem/6029 [题解] 考虑如果有一些近似连续的段 比如 2 2 2 3 3 3,考虑在除3意义下,变成0 0 0 1 1 1,相当于整体-2 又:区 ...

  7. bzoj 3212 线段树

    裸的线段树 /************************************************************** Problem: User: BLADEVIL Langua ...

  8. 【IDEA】设置类头注释和方法注释

    idea和eclipse的注释还是有一些差别的. 类头注释: 打开file->setting->Editor->Filr and Code Templates->Include ...

  9. [转]树莓派gpio口控制

    0.前言     树莓派现在越来越火,网上树莓派的资料也越来越多.树莓派源自英国,国外嵌入式开源领域具有良好的分享精神,树莓派各种集成库也层出不穷,下面推荐几个. [[开发语言]——python [[ ...

  10. Hadoop安装过程

    1.安装JDK apt-get install openjdk-7-jdk 2.配置环境变量 vim /etc/profile 编辑: export JAVA_HOME=/usr/lib/jvm/ja ...