linux下关闭打开指定端口的程序的脚本

时间:2022-02-19 18:13:09

通常我们会遇到这样的麻烦,写了个脚本打开了某个端口,然后再次运行脚本,发现端口已经被绑定了。这时就需要使用这个功能了:输入端口关闭占用此端口的程序。python脚本如下:

import os
import sys 
kill_cmd = "kill -9 $(lsof -i:%s|awk '{print $2}'|tail -n 2)"

def kill_port(port):
    conv_kill_cmd = kill_cmd % port
    print os.system(conv_kill_cmd)

if __name__ == "__main__":
    if len(sys.argv) < 2:
        print "error", sys.argv
        exit()
    kill_port(sys.argv[1])

假如脚本文件名为kill_port.py,要关闭的端口是1000,则使用方法为:python kill_port.py 1000


在freebsd上,可能不支持lsof这个指令。这个时候可以使用sockstat这个指令代替。