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. 编译 openssl 0.9.8zc 出现 error C2220: warning treated as error - no 'object' file generated

    remove the /WX option from CFLAG

  2. Java中Class<T>与Class<?>的区别

    E - Element (在集合中使用,因为集合中存放的是元素) T - Type(Java 类) K - Key(键) V - Value(值) N - Number(数值类型) ? - 表示不确定 ...

  3. Spring学习--通过注解配置 Bean (三)

    组件装配: <context:component-sacan> 元素还会自动注册 AutowiredAnnotationBeanPostProcesser 实例 , 该实例可以自动装配具有 ...

  4. Things To Do Before NOI2017

    TC div1 10套 数据结构 25题 网络流 10题 字符串 20题 数学 15题 图论 15题 计算几何 5题 提交答案 5题 嗯...先这些吧... 以上所有题目,博客都会有更新--- NOI ...

  5. [bzoj2594][Wc2006]水管局长数据加强版——lct+离线

    Brief Description 您有一个无向带权图,您需要支持两种操作. 询问两个点之间的最大权最小路径. 删除一条边. Algorithm Design 我们首先提出一个猜想:最优路径一定在原图 ...

  6. python学习笔记 异步asyncio

    asyncio是Python 3.4版本引入的标准库,直接内置了对异步IO的支持. asyncio的编程模型就是一个消息循环.我们从asyncio模块中直接获取一个EventLoop的引用,然后把需要 ...

  7. For循环中不可以嵌套RDD操作

    今天犯了一个致命理解错误,Spark中的RDD Map操作只是一个计算式的传递,并不是Action,也就是在for循环中不会产生真正的计算. 因此,如果for循环中出现了RDD的Map类似操作,都会引 ...

  8. linux环境下,双击直连ping私有地址时候出现Destination host unreachable 解决办法

    在确保网线无故障的情况下,采取以下步骤 1.查看本机的hostname vim    /etc/sysconfig/network 2.编辑/etc/hosts vim /etc/hosts 加入以下 ...

  9. 【C语言】++(a++)的写法是错的

    http://bbs.csdn.net/topics/390764053 a++得到的是一个右值,++操作需要的是一个左值. ------------------------------------- ...

  10. 怎么在32位windows系统上搭建爬虫框架scrapy?

    禁止转载: 自学python,然后搭建爬虫框架scrapy.费了我一上午的心血.终于搭建成功,以防以后忘记搭建流程,特此撰写此贴,开写 ******************************** ...