当前位置: 首页 > news >正文

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

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

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

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

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

[cpp] view plain copy
  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端口的程序)

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

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

[cpp] view plain copy
  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

相关文章:

  • CGlib的动态代理使用示例
  • (4)事件处理——(6)给.ready()回调函数传递一个参数(Passing an argument to the .ready() callback)...
  • (4)事件处理——(7)简单事件(Simple events)
  • 把编程语言比喻为人体
  • Qt5学习之路(vs2012下创建一个QT应用程序)2013-10-14
  • 说说我在家乡山东日照的面试经历以及对家乡互联网产业的一些认识吧
  • mysql实现随机查询
  • SICP 习题 (1.15) 解题总结
  • 编码规范之美.佛语释道
  • 小智慧63
  • 自己写Lucene分词器原理篇——CJKAnalyzer简单讲解
  • 如何建立基于CocoaPods的ReactiveCocoa工程
  • Webservice-XML与Java(五)
  • Java中SimpleDateFormat用法详解
  • Parcelable protocol requires a Parcelable.Creator object called。。。。。
  • 【跃迁之路】【519天】程序员高效学习方法论探索系列(实验阶段276-2018.07.09)...
  • 002-读书笔记-JavaScript高级程序设计 在HTML中使用JavaScript
  • CSS 专业技巧
  • CSS盒模型深入
  • JAVA之继承和多态
  • JS变量作用域
  • NLPIR语义挖掘平台推动行业大数据应用服务
  • Spark学习笔记之相关记录
  • windows下使用nginx调试简介
  • 发布国内首个无服务器容器服务,运维效率从未如此高效
  • 番外篇1:在Windows环境下安装JDK
  • 海量大数据大屏分析展示一步到位:DataWorks数据服务+MaxCompute Lightning对接DataV最佳实践...
  • 技术胖1-4季视频复习— (看视频笔记)
  • 将回调地狱按在地上摩擦的Promise
  • 配置 PM2 实现代码自动发布
  • 体验javascript之美-第五课 匿名函数自执行和闭包是一回事儿吗?
  • 一个SAP顾问在美国的这些年
  • 翻译 | The Principles of OOD 面向对象设计原则
  • 如何在 Intellij IDEA 更高效地将应用部署到容器服务 Kubernetes ...
  • # 20155222 2016-2017-2 《Java程序设计》第5周学习总结
  • #Java第九次作业--输入输出流和文件操作
  • (2020)Java后端开发----(面试题和笔试题)
  • (27)4.8 习题课
  • (Redis使用系列) SpirngBoot中关于Redis的值的各种方式的存储与取出 三
  • (附源码)计算机毕业设计SSM疫情居家隔离服务系统
  • (十五)devops持续集成开发——jenkins流水线构建策略配置及触发器的使用
  • (转)Linq学习笔记
  • (转载)(官方)UE4--图像编程----着色器开发
  • *** 2003
  • *1 计算机基础和操作系统基础及几大协议
  • .MyFile@waifu.club.wis.mkp勒索病毒数据怎么处理|数据解密恢复
  • .NET 5种线程安全集合
  • .NET CF命令行调试器MDbg入门(三) 进程控制
  • .net之微信企业号开发(一) 所使用的环境与工具以及准备工作
  • [ 手记 ] 关于tomcat开机启动设置问题
  • [ 隧道技术 ] cpolar 工具详解之将内网端口映射到公网
  • [20160902]rm -rf的惨案.txt
  • [AIGC] MySQL存储引擎详解
  • [AS3]URLLoader+URLRequest+JPGEncoder实现BitmapData图片数据保存
  • [Asp.net MVC]Asp.net MVC5系列——Razor语法