11.2. 啟動服務
前一頁 | 章 11. 設定與調校 | 下一頁

## 11.2. 啟動服務

Contributed by Tom Rhodes.

許多使用者會使用 Port 套件集安裝第三方軟體到 FreeBSD 且需要安裝服務在系統初始化時可啟動該軟體。服務，例如 mail/postfix 或 www/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) 後執行。

前一頁 | 上一層 | 下一頁
章 11. 設定與調校 | 起始頁 | 11.3. 設定 cron(8)

本文及其他文件，可由此下載： ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/。

若有 FreeBSD 方面疑問，請先閱讀 FreeBSD 相關文件，如不能解決的話，再洽詢 <questions@FreeBSD.org>。
關於本文件的問題，請洽詢 <doc@FreeBSD.org>。