linux下查看端口占用情况以及服务启动的目录 | 您所在的位置:网站首页 › linux查看启动的服务器端口命令 › 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查到是被什么程序占用。
|
CopyRight 2018-2019 实验室设备网 版权所有 |