11.2. 启动服务

Contributed by Tom Rhodes.

许多使用者会使用Port套件集安装第三方软件到FreeBSD且需要安装服务在系统初始化时可启动该软件。服务,例如mail/postfixwww/apache22仅只是在众多需要在系统初始化时启动的软件之中的两个。本章节将说明可用来启动第三方软件的程序。

在FreeBSD大多数内置的服务,例如cron(8)也是透过系统启动Script来执行。

11.2.1. 延伸应用程序设定

现在FreeBSD会引用rc.d,设定应用程序启动变的更简单且提供更多的功能。使用于第 11.4 节 “管理FreeBSD中的服务”所提到的关键字,可以设定应用程序在其他特定服务之后启动且可以透过/etc/rc.conf来传递额外的旗标来取代写死在启动Script中的旗标。一个基本的Script可能会如下例所示:

#!/bin/sh
#
# PROVIDE: utility
# REQUIRE: DAEMON
# KEYWORD: shutdown

. /etc/rc.subr

name=utility
rcvar=utility_enable

command="/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"

这个Script会确保要执行的utility会在虚构的服务DAEMON之后启动,也同时提供设定与追踪程序ID(Process ID,PID)的方法。

接着此应用程序便可将下行放到/etc/rc.conf中:

utility_enable="YES"

使用这种方式可以简单的处理指令列参数、引用/etc/rc.subr所提供的预设函数、与rcorder(8)兼容并可在rc.conf简单的设定。

11.2.2. 使用服务来启动其他服务

其他的服务可以使用inetd(8)来启动,在第 29.2 节 “inetd超级服务器”有如何使用inetd(8)以及其设定的深入说明。

在某些情况更适合使用cron(8)来启动系统服务,由于cron(8)会使用crontab(5)的拥有者来执行这些程序,所以这个方法有不少优点,这让一般的使用者也可以启动与维护自己的应用程序。

cron(8)@reboot功能,可用来替代指定详细的时间,而该工作会在系统初始化时执行cron(8)后执行。

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

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

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