如何确保网络接口通过 DHCP 接收其地址后运行 init.d 脚本?

如何确保网络接口通过 DHCP 接收其地址后运行 init.d 脚本?

我刚刚在 debian5 系统上安装了 couchdb,并向 /etc/init.d/couchdb-script 添加了符号链接。不幸的是,在网络接口通过 DHCP 收到 Couchdb 服务器尝试绑定的地址之前,此脚本在启动时被触发 - 这导致实例失效。

我通过在启动脚本中执行 dhclient 解决了这个问题,但是有没有更好的方法?

答案1

是的,有更好的方法:放置您的 couchdb 初始化脚本,/etc/network/if-up.d/以便它在您的网络设置后运行。

注意:

   Filenames should consist entirely of upper and lower case
   letters, digits, underscores, and hyphens. Subdirectories  
   of directory and files with other names will be silently ignored.

答案2

在 CentOS 和可能的 RedHat 上,它会检查是否存在文件/sbin/ifup-local,如果可用则执行该文件。

创建它:

sudo touch /sbin/ifup-local
sudo chmod +x /sbin/ifup-local

然后编辑它以包含您想要的内容

#!/bin/sh
# your commands or calls to your script here

希望这能有所帮助。我.d更喜欢 Debian 的目录,但这似乎是 CentOS 上最接近的目录。

相关内容