rc.d
脚本在系统启动时用于启动服务,
并为管理员提供停止、 启动和重新启动某个服务的标准方法。 Ports
安装的脚本会集成到系统的 rc.d
框架中。
关于如何使用它的说明, 可以在
使用手册的 rc.d
章节 找到。 关于可用命令的详细解释, 则可以在
rc(8) 和 rc.subr(8) 找到。 最后, 您可以参阅
这篇文章
了解撰写 rc.d
脚本的最佳实践。
可以安装一或多个 rc.d
脚本:
这些脚本必须放到 files
目录, 并附加 .in
。
这个文件中可以使用标准的
SUB_LIST
替换展开。 除此之外,
我们还强烈推荐使用 %%PREFIX%%
和
%%LOCALBASE%%
替换展开。 关于
SUB_LIST
的介绍可以在 本书的相关章节 找到。
在 FreeBSD 6.1-RELEASE 之前, 与 rcorder(8) 的集成是通过
USE_RCORDER
而不是
USE_RC_SUBR
来完成的。 不过,
除非 port 需要提供安装进基本系统这样的选项,
或者服务需要在 rc.d
脚本
FILESYSTEMS
之前运行这类特殊情况,
一般来说是不需要使用这个功能的。
从 FreeBSD 6.1-RELEASE 开始, 本地安装的 rc.d
脚本 (包括由 port 安装的脚本) 会纳入基本系统的 rcorder(8)。
以下是一个简单的 rc.d
脚本:
除非有很站得住脚的理由提前启动服务,所有的 ports 脚本应使用
。 如果服务需要以特定用户 (除 root 之外) 身份启动, 则必须这样做。 在前面的例子中, 我们还使用了
以便让 mythical port 在系统停机的过程中以正常的方式终止, 因为它需要在系统引导过程中启动服务。 如果脚本没有启动任何服务, 则并不需要这样做。
这里, 对变量的默认赋值方法应采用 "=",
而非 ":=" 这样的形式。 这是因为,
前一种赋值方法只有在变量未被设置时才设置默认值,
而后一种方法则会在变量没有设置,
或者 其值为空时都设置默认值。
用户非常可能在其
rc.conf.local
中使用类似
这样的设置, 而采用 ":=" 来进行赋值, 则会在不经意间覆盖用户所希望的设置。
新增的脚本均不应使用 .sh
后缀。 未来, 仍然包含这一后缀的脚本将被批量改名。
本文档和其它文档可从这里下载: ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.
如果对于FreeBSD有问题,请先阅读
文档,如不能解决再联系
<questions@FreeBSD.org>.
关于本文档的问题请发信联系
<doc@FreeBSD.org>.