我在 Fedora 18 上有一个 SysV 初始化脚本。Fedora 18 使用 systemd(显然,没有办法切换回 SysV)。
我的脚本要求网络准备就绪。
<编辑>也就是说,运行此脚本时我必须能够通过 ping 到达网络上的另一台主机。</编辑>
目前,在脚本运行时,网络尚未准备好。如何确保我的 SysV init 脚本运行后网络正常吗?
我的脚本的开头如下所示:
#!/bin/bash
#
# chkconfig: 345 99 01
# description: starts the xyz boot service
答案1
“首先,抓住你的野兔……”
首先,您必须定义“网络已准备就绪”的含义。 这并不简单,你的定义可能与其他人的定义截然不同。 当然,您的问题根本没有表明您对于“网络已准备就绪”的具体想法是什么。
当你定义了它之后,剩下的就是编写一个单元文件来替换旧的 System V shell 脚本的简单问题,这无论如何都是一个好主意,并添加必要的After=
任何(并且可能Wants=
任何以及)到单位。困难的部分是任何,这取决于您认为“网络已启动”是什么意思。
当您编写完单元文件后,您可能会愿意将其捐赠给世界,从而减少一个需要世界编写的单元文件。