shell杀死占用端口程序

shell杀死占用端口程序

前提

有时候我们经常要结束占用某些端口的程序。如在Linux中做socket开发的时候。

我们可以使用以下命令的:(假设我们呀关闭占用80端口的程序)

kill -9 $(lsof -i:80|tail -1|awk '"$1"!=""{print $2}')//$用户获取命令的执行结果

但是每次我们都这样写多麻烦呀。所有可以写成一个shell脚本文件。方便使用了

#!/bin/bash
name=$(lsof -i:80|tail -1|awk '"$1"!=""{print $2}')
if [ -z $name ]
then
	echo "No process can be used to killed!"
	exit 0
fi
id=$(lsof -i:80|tail -1|awk '"$1"!=""{print $2}')
kill -9 $id
 
echo "Process name=$name($id) kill!"
exit 0

下面我们来讲用到的内容了。

kill 和 tail 就不用讲了

我们说下 lsof 和awk:

lsof:

lsof filename 显示打开指定文件的所有进程
lsof -a 表示两个参数都必须满足时才显示结果
lsof -c string 显示COMMAND列中包含指定字符的进程所有打开的文件
lsof -u username 显示所属user进程打开的文件
lsof -g gid 显示归属gid的进程情况
lsof +d /DIR/ 显示目录下被进程打开的文件
lsof +D /DIR/ 同上,但是会搜索目录下的所有目录,时间相对较长
lsof -d FD 显示指定文件描述符的进程
lsof -n 不将IP转换为hostname,缺省是不加上-n参数
lsof -i 用以显示符合条件的进程情况

awk 的内容太多了。我只说用到的吧。$1、$2表示第几个参数,
原文链接:https://blog.csdn.net/reage11/article/details/8615236

发布了28 篇原创文章 · 获赞 1 · 访问量 1043
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 数字50 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览