zoukankan      html  css  js  c++  java
  • Linux中关闭一个端口对应的所有程序

    有时,我们在服务器上开启了一个Django或其它任务,占用了服务器的一个端口,而当我们想将其关闭的时候,发现其对应着许多进程,这时,要将其一个一个地找出来并且kill掉还是比较麻烦的,所以写了下面这个python脚本来处理这样的任务。

    import commands
    import os
    
    
    def kill_all_django_processes(port = 90):
        result = os.popen('ps aux | grep python')
    
        pid_list = []
    
        print "-" * 60 + "
    Information for all processes corresponding to port %d" % port
    
        for line in result:
            line = line.replace("
    ", "")
            strs = line.split()
            # if strs[-2] == "runserver" and strs[-3] == "manage.py":
            if strs[-1] == ("0.0.0.0:%d" % port):
                print line
                pid_list.append(strs[1])
        
        print "-" * 60 + "
    all pid to kill:"
        print pid_list
        print "-" * 60
    
        for pid in pid_list:
            os.popen('kill -9 %s' % str(pid))
    
    
    if __name__ == "__main__":
        kill_all_django_processes(90)
    

    输出:

    ------------------------------------------------------------
    Information for all processes corresponding to port 90
    root     25120  0.0  0.1 431956 33464 pts/4    Sl   15:54   0:00 python manage.py runserver 0.0.0.0:90
    root     25129  2.9  0.2 1598932 55804 pts/4   Sl   15:54   0:17 /root/DjangoEnv/bin/python manage.py runserver 0.0.0.0:90
    root     25155  0.0  0.2 1213144 44396 pts/4   Sl   15:54   0:00 /root/DjangoEnv/bin/python manage.py runserver 0.0.0.0:90
    root     25156  0.2  0.2 1344984 45684 pts/4   Sl   15:54   0:01 /root/DjangoEnv/bin/python manage.py runserver 0.0.0.0:90
    root     25157  0.1  0.2 1346264 47432 pts/4   Sl   15:54   0:00 /root/DjangoEnv/bin/python manage.py runserver 0.0.0.0:90
    ------------------------------------------------------------
    all pid to kill:
    ['25120', '25129', '25155', '25156', '25157']
    ------------------------------------------------------------
    

    注意,程序要在需要处理的服务器上直接运行,其中主函数输入的参数是要kill掉的程序所占用的端口号,比如,笔者这里是要kill掉90端口的所有python程序,所以输入的参数是90,然后程序发现有5个进程在占用90端口,并将其详细输出,之后将其对应的进程kill掉。

  • 相关阅读:
    scheme资料
    lisp 资料
    linux input 文章
    qt 键盘驱动分析
    表达式模板 (C++学习)
    qt 键盘插件(mine)
    qt 私有实现导致plugin 加载 提示 undefined symbol
    Visual C++ 8.0对象布局的奥秘:虚函数、多继承、虚拟继承
    linux内核input子系统解析
    qt 键盘 插件
  • 原文地址:https://www.cnblogs.com/liulaolaiu/p/11744396.html
Copyright © 2011-2022 走看看