通常我们会遇到这样的麻烦,写了个脚本打开了某个端口,然后再次运行脚本,发现端口已经被绑定了。这时就需要使用这个功能了:输入端口关闭占用此端口的程序。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
这个指令代替。