許多使用者會使用 Port 套件集安裝第三方軟體到 FreeBSD 且需要安裝服務在系統初始化時可啟動該軟體。服務,例如 mail/postfix 或 www/apache22 僅只是在眾多需要在系統初始化時啟動的軟體之中的兩個。本章節將說明可用來啟動第三方軟體的程序。
在 FreeBSD 大多數內建的服務,例如 cron(8) 也是透過系統啟動 Script 來執行。
現在 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
簡單的設定。
其他的服務可以使用 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 方面疑問,請先閱讀
FreeBSD 相關文件,如不能解決的話,再洽詢
<questions@FreeBSD.org>。
關於本文件的問題,請洽詢
<doc@FreeBSD.org>。