使用shell关闭占用某一个端口的程序

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

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

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

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

  1. #!/bin/bash
  2. name=$(lsof-i:80|tail-1|awk'"$1"!=""{print$2}')
  3. if[-z$name]
  4. then
  5. echo"Noprocesscanbeusedtokilled!"
  6. exit0
  7. fi
  8. id=$(lsof-i:80|tail-1|awk'"$1"!=""{print$2}')
  9. kill-9$id
  10. echo"Processname=$name($id)kill!"
  11. exit0


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

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表示第几个参数,



blog:http://blog.csdn.net/rentiansheng/article/details/8615236

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

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

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

  1. #!/bin/bash
  2. name=$(lsof-i:80|tail-1|awk'"$1"!=""{print$2}')
  3. if[-z$name]
  4. then
  5. echo"Noprocesscanbeusedtokilled!"
  6. exit0
  7. fi
  8. id=$(lsof-i:80|tail-1|awk'"$1"!=""{print$2}')
  9. kill-9$id
  10. echo"Processname=$name($id)kill!"
  11. exit0


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

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表示第几个参数,



blog:http://blog.csdn.net/rentiansheng/article/details/8615236

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值