udhcpc 参数使用说明

简介: 当没有网络的时候,板子一直发送dhcp请求,导致程序不往下执行,解决的办法是把它切换到后台运行,可是如何切换到后台呢,有办法,它自带参数可以实现该功能。如下:   udhcpc -b -i eth0 -p /var/run/udhcpc.pid -R解释一下,-b就是切换到后台指令,-i是指定使用哪个网络接口,双网卡的时候一定要使用它来指定eth0  or  eth1。

当没有网络的时候,板子一直发送dhcp请求,导致程序不往下执行,解决的办法是把它切换到后台运行,可是如何切换到后台呢,有办法,它自带参数可以实现该功能。如下:

   udhcpc -b -i eth0 -p /var/run/udhcpc.pid -R

解释一下,-b就是切换到后台指令,-i是指定使用哪个网络接口,双网卡的时候一定要使用它来指定eth0  or  eth1。

【最近新添加 -R】

对于 -R参数,其实也很重要,在关闭udhcpc时,可以向dhcpserver发送release取消租约。

下面引用网友的一篇文章:

udhcpc 的配置记录

 
udhcpc scripts

Here's some debian scripts I wrote for udhcpc 0.9.6. I wanted to make it easy to run local scripts for DHCP changes so I created /etc/udhcpc.d. All the /usr/share/udhcpc/default.* scripts have been merged into /etc/udhcpc.d/S50default. S99local is an example script that patches resolv.conf and calls a DNS update script.

/etc/init.d/udhcpc
/etc/udhcpc.script
/etc/udhcpc.d/S50default
/etc/udhcpc.d/S99local

Last modified: Mon Feb 4 10:23:49 PST 2002


单调的分割线


http://udhcp.busybox.net/README.udhcpc

udhcp client (udhcpc)
--------------------

The udhcp client negotiates a lease with the DHCP server and notifies
a set of scripts when a leases is obtained or lost.


command line options
-------------------

The command line options for the udhcp client are:

-c, --clientid=CLIENTID         Client identifier
-H, --hostname=HOSTNAME         Client hostname
-h,    Alias for -H
-f, --foreground                Do not fork after getting lease
-b, --background                Fork to background if lease cannot be
                                immediately negotiated.
-i, --interface=INTERFACE       Interface to use (default: eth0)
-n, --now                       Exit with failure if lease cannot be
                                immediately negotiated.
-p, --pidfile=file              Store process ID of daemon in file
-q, --quit                      Quit after obtaining lease
-r, --request=IP                IP address to request (default: none)
-s, --script=file               Run file at dhcp events (default:
                                /usr/share/udhcpc/default.script)
-v, --version                   Display version


If the requested IP address cannot be obtained, the client accepts the
address that the server offers.


udhcp client scripts
-------------------

When an event occurs, udhcpc calls the action script. The script by
default is /usr/share/udhcpc/default.script but this can be changed via 
the command line arguments. The three possible arguments to the script 
are:

 deconfig: This argument is used when udhcpc starts, and
 when a leases is lost. The script should put the interface in an
 up, but deconfigured state, ie: ifconfig $interface 0.0.0.0.
 
 bound: This argument is used when udhcpc moves from an
 unbound, to a bound state. All of the paramaters are set in
 enviromental variables, The script should configure the interface,
 and set any other relavent parameters (default gateway, dns server, 
 etc).
 
 renew: This argument is used when a DHCP lease is renewed. All of
 the paramaters are set in enviromental variables. This argument is
 used when the interface is already configured, so the IP address,
 will not change, however, the other DHCP paramaters, such as the
 default gateway, subnet mask, and dns server may change.

 nak: This argument is used with udhcpc receives a NAK message.
 The script with the deconfig argument will be called directly
 afterwards, so no changes to the network interface are neccessary.
 This hook is provided for purely informational purposes (the
 message option may contain a reason for the NAK).

The paramaters for enviromental variables are as follows:

 $HOME  - The set $HOME env or "/"
 $PATH  - the set $PATH env or "/bin:/usr/bin:/sbin:/usr/sbin"
 $1  - What action the script should perform
 interface - The interface this was obtained on
 ip  - The obtained IP
 siaddr  - The bootp next server option
 sname  - The bootp server name option
 boot_file - The bootp boot file option
 subnet  - The assigend subnet mask
 timezone - Offset in seconds from UTC
 router  - A list of routers
 timesvr  - A list of time servers
 namesvr  - A list of IEN 116 name servers
 dns  - A list of DNS server
 logsvr  - A list of MIT-LCS UDP log servers
 cookiesvr - A list of RFC 865 cookie servers
 lprsvr  - A list of LPR servers
 hostname - The assigned hostname
 bootsize - The length in 512 octect blocks of the bootfile
 domain  - The domain name of the network
 swapsvr  - The IP address of the client's swap server
 rootpath - The path name of the client's root disk
 ipttl  - The TTL to use for this network
 mtu  - The MTU to use for this network
 broadcast - The broadcast address for this network
 ntpsrv  - A list of NTP servers
 wins  - A list of WINS servers
 lease  - The lease time, in seconds
 dhcptype - DHCP message type (safely ignored)
 serverid - The IP of the server
 message  - Reason for a DHCPNAK
 tftp  - The TFTP server name
 bootfile - The bootfile name

additional options are easily added in options.c.


note on udhcpc's random seed
---------------------------

udhcpc will seed its random number generator (used for generating xid's)
by reading /dev/urandom. If you have a lot of embedded systems on the same
network, with no entropy, you can either seed /dev/urandom by a method of
your own, or doing the following on startup:

ifconfig eth0 > /dev/urandom

in order to seed /dev/urandom with some data (mac address) unique to your
system. If reading /dev/urandom fails, udhcpc will fall back to its old
behavior of seeding with time(0).


signals accepted by udhcpc
-------------------------

udhcpc also responds to SIGUSR1 and SIGUSR2. SIGUSR1 will force a renew state,
and SIGUSR2 will force a release of the current lease, and cause udhcpc to
go into an inactive state (until it is killed, or receives a SIGUSR1). You do
not need to sleep between sending signals, as signals received are processed
sequencially in the order they are received.


compile time options
-------------------

options.c contains a set of dhcp options for the client:

 name[10]: The name of the option as it will appear in scripts
 
 flags: The type of option, as well as if it will be requested
 by the client (OPTION_REQ)

 code: The DHCP code for this option

目录
相关文章
|
C语言
MQTT交叉编译(海思v300 arm-hisiv300-linux-):openssl、paho.mqtt.c、paho.mqtt.cpp
MQTT交叉编译(海思v300 arm-hisiv300-linux-):openssl、paho.mqtt.c、paho.mqtt.cpp
1640 0
MQTT交叉编译(海思v300 arm-hisiv300-linux-):openssl、paho.mqtt.c、paho.mqtt.cpp
|
4月前
|
前端开发 编译器
前端组件库——Element Plus知识点大全(二)
教程来源 https://yyvgt.cn/category/jiulishi.html Element Plus核心组件详解:涵盖按钮(6类语义化类型、多种样式变体及图标支持)、栅格与间距布局、表单(含验证规则)、表格(排序/分页/树形等)、数据录入(输入框、选择器、时间控件等)及反馈组件(消息/弹窗/通知),并支持SCSS变量覆盖与CSS变量双模式主题定制。
|
12月前
|
存储 数据管理 数据库
数据字典是什么?和数据库、数据仓库有什么关系?
在数据处理中,你是否常困惑于字段含义、指标计算或数据来源?数据字典正是解答这些问题的关键工具,它清晰定义数据的名称、类型、来源、计算方式等,服务于开发者、分析师和数据管理者。本文详解数据字典的定义、组成及其与数据库、数据仓库的关系,助你夯实数据基础。
数据字典是什么?和数据库、数据仓库有什么关系?
|
Java Android开发 UED
安卓scheme_url调端:如果手机上多个app都注册了 http或者https 的 intent。 调端的时候,调起哪个app呢?
当多个Android应用注册了相同的URL Scheme(如http或https)时,系统会在尝试打开这类链接时展示一个选择对话框,让用户挑选偏好应用。若用户选择“始终”使用某个应用,则后续相同链接将直接由该应用处理,无需再次选择。本文以App A与App B为例,展示了如何在`AndroidManifest.xml`中配置对http与https的支持,并提供了从其他应用发起调用的示例代码。此外,还讨论了如何在系统设置中管理这些默认应用选择,以及建议开发者为避免冲突应注册更独特的Scheme。
|
存储 缓存 编译器
探秘C++中的神奇组合:std--pair的魅力之旅
探秘C++中的神奇组合:std--pair的魅力之旅
1327 1
探秘C++中的神奇组合:std--pair的魅力之旅
|
存储 机器学习/深度学习 人工智能
玩转AIGC | 使用阿里云NAS+PAI-EAS部署Stable Diffusion文生图模型
阿里云的AIGC存储解决方案是覆盖了数据收集、模型训练以及模型推理整个生命周期,本实验场景主要覆盖模型推理过程,介绍如何使用模型在线服务(PAI-EAS)以及文件存储NAS部署AIGC应用,快速生成图片。
15074 10
玩转AIGC | 使用阿里云NAS+PAI-EAS部署Stable Diffusion文生图模型
|
JSON 监控 测试技术
依赖第三方的接口如何测试?
依赖第三方的接口如何测试?
752 0
|
Ubuntu 开发工具
ubuntu 网卡 ens33 改名 eth0 方法
ubuntu 网卡 ens33 改名 eth0 方法
806 0
|
缓存 Java Maven
你该如何解决 idea中 Unable to reload Maven project 以及 maven安装配置(内附代码/有安装包)
你该如何解决 idea中 Unable to reload Maven project 以及 maven安装配置(内附代码/有安装包)
1769 0
你该如何解决 idea中 Unable to reload Maven project 以及 maven安装配置(内附代码/有安装包)

热门文章

最新文章