【问题标题】:which program invokes dhclient on debian squeeze? [closed]哪个程序在 debian 挤压上调用 dhclient? [关闭]
【发布时间】:2013-02-06 02:23:09
【问题描述】:

我很好奇 Debian Squeeze 上哪个程序调用了 dhclient?

我怀疑它是 NetworkManager,但事实并非如此。 由于我已将其删除(apt-get remove NetworkManager)并重新启动计算机。

dhclient 程序照常运行。见:

~$ ps aux|grep dhclient

root      2042  0.0  0.0   2332   532 ?        Ss   09:47   0:00 dhclient -v -pf /var/run/dhclient.eth0.pid -lf /var/lib/dhcp/dhclient.eth0.leases eth0

我还在/etc 中为dhclient grep,但没有足够的提示(未找到调用者)。

如何在 Debian Squeeze 上调用 dhclient 程序?

【问题讨论】:

  • 我知道如何设置静态IP。我的问题是哪个程序调用了 dhclient 程序?

标签: debian dhcp


【解决方案1】:

在 ifupdown 中编码。

http://packages.debian.org/stable/ifupdown

下载源码

制作 inet.c

检查函数dhcp_up():

static int dhcp_up(interface_defn *ifd, execfn *exec) {
{
  if (!execute("[[ifconfig %iface% hw %hwaddress%]]", ifd, exec)) return 0;
}
if ( execable("/sbin/dhclient3") ) {
  if (!execute("dhclient3 -pf /var/run/dhclient.%iface%.pid -lf /var/lib/dhcp3/dhclient.%iface%.leases %iface%", ifd, exec)) return 0;
}
else if ( execable("/sbin/dhclient") ) {
  if (!execute("dhclient -v -pf /var/run/dhclient.%iface%.pid -lf /var/lib/dhcp/dhclient.%iface%.leases %iface%", ifd, exec)) return 0;
}
else if ( execable("/sbin/pump") && mylinuxver() >= mylinux(2,1,100) ) {
  if (!execute("pump -i %iface% [[-h %hostname%]] [[-l %leasehours%]]", ifd, exec)) return 0;
}
else if ( execable("/sbin/udhcpc") && mylinuxver() >= mylinux(2,2,0) ) {
  if (!execute("udhcpc -n -p /var/run/udhcpc.%iface%.pid -i %iface% [[-H %hostname%]]            [[-c %client%]]", ifd, exec)) return 0;
}
else if ( execable("/sbin/dhcpcd") ) {
  if (!execute("dhcpcd [[-h %hostname%]] [[-i %vendor%]] [[-I %client%]]            [[-l %leasetime%]] %iface%", ifd, exec)) return 0;
}
return 1;
}

【讨论】:

    【解决方案2】:

    ifupdown(配置文件:/etc/network/interfaces)。

    【讨论】:

      【解决方案3】:

      您必须禁用 dhcp 并为您的接口设置静态 IP 地址

      这可以在/etc/network/interfaces

      中完成

      变化:

      # The primary network interface
      allow-hotplug eth0
      auto eth0
      iface eth0 inet dhcp
      

      收件人:

      # The primary network interface
      allow-hotplug eth0
      auto eth0
      iface eth0 inet static
        address 192.168.0.1
        netmask 255.255.255.0
      

      重新启动后,dhclient 应该消失了。

      【讨论】:

      • 有趣的是,这似乎并没有真正杀死 dhclient ......也就是说,如果你不重新启动服务器。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-28
      相关资源
      最近更新 更多