b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

Windows查看服务占用端口

电脑杂谈  发布时间:2020-04-15 04:04:30  来源:网络整理

cmd 查看端口占用_cmd查看端口占用_cmd命令怎么查看端口

本文以MongoDB为例,其他服务的查看过程类似:

术语解释: 服务: 计算机访问,实际上,是服务. 必须先打开该服务,然后才能对其进行访问. 并且计算机打开一个服务,该服务是计算机中的一个进程. PID: 进程标识,进程标识符的缩写,通常是一个十进制数字. 在Windows中查看服务的PID的方法是打开任务管理器并进入详细信息页面. 如果在打开任务管理器时打开了简要信息页面cmd 查看端口占用,请单击“详细信息”按钮,如下所示:

image.png

cmd命令怎么查看端口_cmd查看端口占用_cmd 查看端口占用

进入详细信息页面,然后选择下图中红色箭头所示的服务:

image.png

首先单击下图中红色箭头所示的名称,它将按服务名称从大到小排序. 例如,我们要查找MongoDB服务的PID,并按顺序将其关闭,如下图所示:

cmd查看端口占用_cmd 查看端口占用_cmd命令怎么查看端口

image.png

从上图可以看到,MongoDB服务的PID为4584.

打开cmd,按Windows + r组合键cmd 查看端口占用,在运行窗口中输入命令cmd,如下图所示:

cmd命令怎么查看端口_cmd查看端口占用_cmd 查看端口占用

image.png

在运行窗口中,输入命令cmd,单击“确定”按钮或按Enter键进入cmd窗口. 在cmd窗口中输入命令: netstat -ano结果如下:

image.png

cmd 查看端口占用_cmd查看端口占用_cmd命令怎么查看端口

从上图中可以看出,使用PID 4584的进程的本地地址为: 127.0.0.1:27017,即使用PID 4584的进程占用的端口为27017

查找命令: netstat -ano | findstr“ {}”将大括号替换为进程的PID,如下所示:

image.png

用python代码执行上述三个步骤,然后运行python代码以获得结果,以供将来检查. 代码中有2个功能. getPid函数用于模糊搜索过程名称及其对应的PID. 传入参数processName数据类型是字符串. pid2port函数用于获取PID以及它占用的IP本地地址和端口. 参数pip_input的数据类型为字符串或整数. 在命令行中,任务列表| find“ {}”可以用于与模糊搜索过程相对应的PID,用大括号代替模糊搜索内容. 模糊搜索进程名称包含sql进程命令: tasklist |找到“ sql”,如下所示:

image.png

import os 
import re 
def getPid(processName):
    cmd_str = 'tasklist | find "%s"' %processName
    p = os.popen(cmd_str)
    tasklist_str = p.read()
    task_list =tasklist_str.split('\n')[:-1]
    if len(task_list) == 0:
        print('没有找到该进程')
        return []
    else:
        process_list = [re.split('\s+',k)[0] for k in task_list]
        pid_list = [re.split('\s+',k)[1] for k in task_list]
        result = list(zip(process_list,pid_list))
        print('进程和对应的PID:')
        for i in result:
            print(i[0], i[1], sep='\t')
        return result
    
def pid2port(pid_input):
    pid_input = str(pid_input)
    p = os.popen('netstat -ano|findstr "%s"' %pid_input)
    netstat_str = p.read()
    netstat_list = netstat_str.split('\n')[:-1]
    pid_list = [re.split(r'\s+',k.strip())[-1] for k in netstat_list]
    address_list = [re.split(r'\s+',k.strip())[1] for k in netstat_list]
    port_list = [k.split(':')[-1] for k in address_list]
    flag = True
    for pid,address,port in zip(pid_list,address_list,port_list):
        if pid == pid_input:
            print('PID为%s的进程本地地址为:%s,端口号为:%s'\
                  %(pid,address,port))
            flag = False
    if flag:
        print('PID为%s的进程没有占用端口' %pid_input)
if __name__ == '__main__':
    processName = 'mongo'
    pid_list = getPid(processName)  
    if len(pid_list) == 1:
        pid2port(pid_list[0][1])
    elif len(pid_list) > 1:
        pid = input("请输入查找的PID:")
        pid2port(pid)

如果启用了MongoDB服务,则以上代码的结果如下:


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/ruanjian/article-176102-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      热点图片
      拼命载入中...