我在Fedora 18上有一个SysV初始化脚本.Fedora 18使用systemd(显然,没有办法切换回SysV)。
我的脚本要求网络准备就绪。目前,在脚本运行时,网络尚未就绪。如何在网络启动后确保我的SysV init脚本运行?
我的脚本的开头是这样的:
#!/bin/bash
#
# chkconfig: 345 99 01
# description: starts the xyz boot service
答案 0 :(得分:1)
好的,在尝试了几件事后,我尝试添加一个LSB标头:
### BEGIN INIT INFO
# Required-Start: $network $local_fs $named
# Default-Start: 3 4 5
# Default-Stop: 0 1 2 6
# Short-Description: Starts/stops the foo service
# Description: Starts/stops the foo service
### END INIT INFO
这很有效!该脚本现在在网络初始化后运行。我想systemd
实现读取LSB头。
答案 1 :(得分:0)
要在网络准备就绪时运行脚本,请在systemd服务文件的[Unit]部分中添加以下内容:
After=network-online.target
Wants=network-online.target
当网络管理软件认为网络已启动时,网络被定义为就绪(通常意味着IP地址已配置且可路由)。对于NetWorkManager,它会查询dbus以获取信息..
<强>参考强>