Linux下关闭udhcpc客户端时,通知服务器释放租约
简述
最近遇到一个dhcp相关的问题,就是我的设计模式有两种一种是自动获取ip服务,另一个种是手动配置ip服务;当我切换自动获取ip时会向服务器申请一个动态的ip,通常做法是使用命令在后台打开一个udhcpc客户端,然后通过客户端向服务器申请租约;当我切换手动配置ip时,通常是手动输入一个ip然后检测这个ip是否被占用,没有被占用则配置;
现在的想法是由于之前是自动获取ip的,后台有一个udhcpc客户端进程存在,而且路由器中的DHCP设备列表中也存在之前动态申请的ip地址;当我从自动获取ip切换到手动配置ip时,想要释放租约并且从路由器中的DHCP设备列表中移除已申请的ip地址,然后再关闭udhcpc客户端(为什么不是先关闭udhcpc客户端再解除租约,因为解除租约是依靠udhcpc客户端与路由器的服务端通信);
动态申请IP
首先使用udhcpc动态申请一个ip:
udhcpc -b -i eth0 -R
-q:表示得到组月后退出;
-b:表示在后台运行;
-i:如果存在多网卡时需要指定网卡名;
-R:表示udhcpc客户端程序退出后通知服务器释放租约;
释放租约
可能有人会疑惑使用kill、pkill或者killall杀死udhcpc客户端时不会通知服务器释放租约吗,明明申请ip的时候带了-R参数?正常情况下比如申请的时候带了-q参数,得到租约后自动退出前会通知服务器释放租约;但是使用kill、pkill或者killall杀死udhcpc客户端并不是正常的退出,而是强制关闭,所以不会通知服务器释放租约;
正确释放租约可以通过给udhcpc客户端进程发送一个USR2(开发板平台)或者SIGUSR2(linux平台)信号,然后再通过kill(通过pid关闭单个进程)或者killall(通过进程名称关闭这个名称下的所有进程):
// 开发板平台下:先通过USR2信号释放租约,然后再通过第二条命令关闭进程
kill -SR2 pid;kill pid
killall -SR2 udhcpc;killall udhcpc// linux平台下:先通过SIGUSR2信号释放租约,然后再通过第二条命令关闭进程
kill -SIGUSR2 pid;kill pid
killall -SIGUSR2 udhcpc;killall udhcpc
Linux下关闭udhcpc客户端时,通知服务器释放租约相关推荐
- linux 影院 ftp客户端20端口号,Linux下的ftp客户端说明文档
Linux下的ftp客户端说明文档 发布时间:2006-09-24 00:20:41来源:红联作者:userhq l 软件功能: 本程序基于linux下的socket函数,利用ftp 协议,实现lin ...
- linux搭建mcpe服务器_Ubuntu Linux下搭建Minecraft我的世界服务器
总结一下在Ubuntu Linux下搭建Minecraft我的世界服务器的方法,其实非常简单直接. (1).把当前的软件都更新到最新 sudo apt-get update Minecraft服务器需 ...
- Linux下select函数实现的聊天服务器
转载: http://blog.csdn.net/microtong/article/details/4989902 Linux下select函数实现的聊天服务器 佟强 http://blog.cs ...
- linux系统我的世界开服,Ubuntu Linux下搭建Minecraft我的世界服务器
总结一下在Ubuntu Linux下搭建Minecraft我的世界服务器的方法,其实非常简单直接. (1).把当前的软件都更新到最新 sudo apt-get update Minecraft服务器需 ...
- Linux下程序崩溃dump时的 core文件的使用方法
Linux下程序崩溃dump时的 core文件的使用方法 1.在启动程序前执行 ulimit -c unlimited unlimited 表示生成文件的大小限制,也可以修改为自定义的大小,例如: u ...
- linux下安装mysql客户端client
1. 下载mysql客户端 MySQL的Linux客户端官网下载地址 根据Linux的系统版本选择下载对应的rpm安装包(如下所示),这里选择的是mysql8.0.27版本的redhat8系列的MyS ...
- linux 读取飞信信息,Linux下安装飞信客户端(OpenFetion)
主机平台:Gentoo 11.2 内核版本:Linux Kernel 3.2.1 1.首先下载OpenFetion源代码 具体下载目录在 /2012年资料/3月/22日/Linux下安装飞信客户端(O ...
- linux搭建ca服务器搭建,linux下安装EJBCA 搭建私有CA服务器
linux下安装EJBCA 搭建私有CA服务器 EJBCA是一个全功能的JAVA的CA系统软件,我们可以用此搭建私有CA服务器: 一:首先我的测试环境: 1. linux mint18.3 62位: ...
- linux安装DNS服务命令,Linux下的安装和配置DNS服务器
Linux下的安装和配置DNS服务器 发布时间:2008-09-08 17:03:00 作者:佚名 我要评论 在Linux操作系统中使用BIND (Berkeley Internet Name ...
- 在linux 下编译c程序时“ error:dereferencing pointer to incomplete type”的问题
在linux 下编译c程序时经常会遇到" error:dereferencing pointer to incomplete type"的问题,该问题的原因是:结构体定义不规范造成 ...
最新文章
- linux C函数之strdup函数分析【转】
- 测试wifi软件 最大容量,使用VulcanCompact应用层测试仪评估测试WiFi6无线路由器的最大支持设备数及并发连接数...
- 模板资源管理器的使用
- 【专访】PP租车创业故事二:为什么要创业?
- python matplotlib 绘图
- linux DTS介绍
- eth_type_trans的处理流程图
- DBArtist之Oracle入门第1步: 如何安装Oracle 11g
- 杀死系统中的进程kill和killall命令
- [数据结构]二叉搜索树概念及基本操作
- Clickhouse:日志表占用大量磁盘空间怎么办?
- 使用Flying Saucer生成pdf
- python2代码转换python3(2018新)
- 吴恩达卷积神经网络 笔记,吴恩达 深度神经网络
- 超3成医院未通过等保测评?亚信安全终端一体化赋能医疗行业安全
- 解决百度云主机(BCH)wordpress程序伪静态和后台打开404问题(创客互联)
- Mathematica中将多个动态图合并在一起(包括自动与手动)
- python与金融工程的区别_统计学和金融工程的区别
- 【计组】设计大型DMP系统--《深入浅出计算机组成原理》(十四)
- Charles抓包使用
热门文章
- [项目管理]-第三章:需求分析
- 移动机械硬盘测试软件,硬盘检测工具HDTune使用教程
- pdf factory pro7序列号教你如何打印转换PDF教程
- 滴滴技术专家任玉刚:让你的职业迷茫从哪来回哪去
- Visual Studio Community 2017安装步骤(只装C++)
- 动态硬盘转基本盘转换器
- 指派问题程序c语言,指派问题lingo程序样例
- 前端在H5页面唤起微信支付(H5支付)
- 三大电商(淘宝、京东、拼多多)开放平台 服务市场 过程中常用文件和注意事项(PRD,MRD)
- 2021年PMP考试模拟题2(含答案)