12.5. 启动服务

Contributed by Tom Rhodes.

许多用户会选择使用 Ports Collection 来在 FreeBSD 上安装第三方软件。 很多情况下这可能需要进行一些配置以便让这些软件能够在系统初始化的过程中启动。 服务, 例如 mail/postfixwww/apache13 就是这些需要在系统初始化时启动的软件包中的两个典型代表。 这一节解释了启动第三方软件所需要的步骤。

FreeBSD 包含的大多数服务,例如 cron(8), 就是通过系统启动脚本启动的。 这些脚本也许会有些不同, 这取决于 FreeBSD 版本。 但是不管怎样, 需要考虑的一个重要方面是他们的启动配置文件要能被基本启动脚本识别捕获。

12.5.1. 扩展应用程序配置

现在 FreeBSD 提供了 rc.d, 这使得对应用软件的启动进行配置变得更加方便, 并提供了更多的其他功能。 例如, 使用在 rc.d 一节中所介绍的关键字, 应用程序就可以设置在某些其他服务, 例如 DNS 之后启动; 除此之外, 还可以通过 rc.conf 来指定一些额外的启动参数, 而不再需要将它们硬编码到启动脚本中。 基本的启动脚本如下所示:

#!/bin/sh## PROVIDE: utility# REQUIRE: DAEMON# KEYWORD: shutdown. /etc/rc.subrname=utilityrcvar=utility_enablecommand="/usr/local/sbin/utility"load_rc_config $name## DO NOT CHANGE THESE DEFAULT VALUES HERE# SET THEM IN THE /etc/rc.conf FILE#utility_enable=${utility_enable-"NO"}pidfile=${utility_pidfile-"/var/run/utility.pid"}run_rc_command "$1"

这个脚本将保证 utility 能够在 DAEMON 服务之后启动。 它同时也提供了设置和跟踪 PID, 也就是进程 ID 文件的方法。

可以在 /etc/rc.conf 中加入:

utility_enable="YES"

这个方法也使得命令行参数、包含 /etc/rc.subr 中所提供的功能, 兼容 rcorder(8) 工具并提供更简单的通过 rc.conf 文件来配置的方法。

12.5.2. 用服务来启动服务

其他服务, 例如 POP3 服务器, IMAP, 等等, 也可以通过 inetd(8) 来启动。 这一过程包括从 Ports Collection 安装相应的应用程序, 并把配置加入到 /etc/inetd.conf 文件, 或去掉当前配置中的某些注释。 如何使用和配置 inetdinetd 一节中进行了更为深入的阐述。

一些情况下, 通过 cron(8) 来启动系统服务也是一种可行的选择。 这种方法有很多好处, 因为 cron 会以 crontab 的文件属主身份执行那些进程。 这使得普通用户也能够执行他们的应用。

cron 工具提供了一个独有的功能, 以 @reboot 来指定时间。 这样的设置将在 cron(8) 启动时运行, 通常这也是系统初始化的时候。

本文档和其它文档可从这里下载: ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

如果对于FreeBSD有问题,请先阅读 文档,如不能解决再联系 <questions@FreeBSD.org>.

关于本文档的问题请发信联系 <doc@FreeBSD.org>.