最近の FreeBSD の ports では /usr/local/etc/rc.d/ 下で呼び出すプログラムに関しては、起動用のスクリプトが存在するかどうかだけではなくて、/etc/rc.conf に実際に動かすことを明記しておかないといけないようです。
まぁそういう方針になったのはそれはそれで便利なこともあるので(再起動時に一時的に動かしたくない場合など)良いのですが、今は過渡期らしくて 変更になっているスクリプトとそうでないものがあります。で、何も考えずに portupgrade した後に
# /usr/local/etc/rc.d/apache.sh startとかすると、偶然portupgrade前後で仕様が変わってる場合には動かないんですねー(笑)。portupgrade時には起動スクリプトもいっしょに見る癖をつけなければ・・・。
それはそうと、最近の起動用シェルスクリプトはかなりすっきりしてるんですねー。先頭のコメントとかを除けば スクリプト全部はこれだけ。
apache_enable="NO"/etc/rc.subr内で一般化してしまってるので、起動スクリプト内では引き数による制御とかをなんにもしなくて良いようです。ここまでシンプルですと、起動スクリプトが無い ports とかを入れたときに自分でも簡単にお行儀の良いスクリプトが書けそうです。
apache_flags=""
apache_pidfile="/var/run/httpd.pid"
. /etc/rc.subr
name="apache"
rcvar=`set_rcvar`
command="/usr/local/sbin/httpd"
load_rc_config $name
pidfile="${apache_pidfile}"
start_precmd="`/usr/bin/limits -e -U www`"
run_rc_command "$1"