我想让radvd
(IPv6 路由器通告守护进程)在 Fedora 13 上启动时运行。但是,它将使用的网络接口必须启动,否则守护进程将无法启动。
如果我在系统运行时手动运行守护程序,则一切正常。
但是,我不知道如何告诉 Fedora 13 init 系统“在启动时运行 radvd,但是仅在那之后wlan0 已启动”。wlan0 由 NetworkManager 管理,如果我能保持这种状态就好了。
我尝试radvd
使用 GUIsystem-config-services
工具在启动时启用;然后radvd
尝试在引导过程中启动(在 NetworkManager 之后),但由于 wlan0 不存在而失败。我也尝试更改ONBOOT=no
为ONBOOT=yes
in/etc/sysconfig/networking/devices/ifcfg-wlan0
但这也没有帮助(我不明白配置如何/etc/sysconfig/networking/
与 NetworkManager 交互)。
在我看来,这种事情对于 Upstart 来说应该很简单,但我找不到告诉我“网络接口已启动”的 Upstart 事件。
答案1
我对 Fedora 不太熟悉,但我知道网络管理器确实有一个内置系统可以在界面出现后运行脚本。在 Arch Linux 上,脚本位于
/etc/NetworkManager/dispatcher.d
您需要创建一个脚本来说明当接口启动时执行此操作,当接口关闭时执行此操作。在您的情况下,当接口启动时启动 raddvd,并在接口关闭时停止它。 Arch Linux 的 wiki 有更多信息和示例脚本,应该可以帮助您顺利进行。
https://wiki.archlinux.org/index.php/NetworkManager#Network_Services_with_NetworkManager_Dispatcher
答案2
在 Ubuntu 上(如果没有相同的链,您可能必须针对 Fedora 进行调整):
/etc/NetworkManager/dispatcher.d
NetworkManager 在接口启动或关闭时运行脚本。
特别是/etc/NetworkManager/dispatcher.d/01ifupdown
运行 ifupdown 脚本。Ifupdown 运行
/etc/network/if-up.d
和中的脚本/etc/network/if-down.d
。
特别是,/etc/network/if-up.d/upstart
还会/etc/network/if-down.d/upstart
触发暴发户事件。以下是在服务描述中捕获这些事件的方法:start on net-device-up IFACE=wlan0 stop on net-device-down IFACE=wlan0