current - ベースシステムに新しくサービスを制御するためのラッパコマンドservice(8)が追加されました。service(8)はrc.dスクリプトやrcorder(8)コマンドを使ったラッパスクリプトになっており、これまで直接rc.dスクリプトを使って実行していた処理やrcorder(8)コマンドで確認していた起動順序などを簡単にチェックできるようになります。
システム起動時に起動されるサービスの一覧を起動順序で表示(現在そのサービスが起動しているかどうかではなく、rc.confなどの設定にしたがって表示される)
# service -e
service -eの実行例
# service -e
/etc/rc.d/hostid
/etc/rc.d/zvol
/etc/rc.d/hostid_save
/etc/rc.d/zfs
/usr/local/etc/rc.d/vboxnet
/etc/rc.d/ip6addrctl
/etc/rc.d/cleanvar
/etc/rc.d/devd
/etc/rc.d/newsyslog
/etc/rc.d/syslogd
/etc/rc.d/ntpdate
/etc/rc.d/nfsclient
/etc/rc.d/dmesg
/etc/rc.d/statd
/etc/rc.d/lockd
/etc/rc.d/virecover
/usr/local/etc/rc.d/smartd
/etc/rc.d/lpd
/etc/rc.d/motd
/etc/rc.d/moused
/usr/local/etc/rc.d/dbus
/usr/local/etc/rc.d/hald
/usr/local/etc/rc.d/bsdstats.sh
/usr/local/etc/rc.d/avahi-daemon
/usr/local/etc/rc.d/avahi-dnsconfd
/etc/rc.d/sshd
/etc/rc.d/sendmail
/etc/rc.d/cron
/etc/rc.d/mixer
/etc/rc.d/bgfsck
#
システムにインストールされているサービスの一覧を、利用するように設定されているかどうかにかかわらず起動可能順序で表示
# service -r
起動可能かどうかにかかわらず、用意されているスクリプトの一覧を表示する
# service -l
service(8)に指定してサービスを制御する方法は、直接rc.dスクリプトを指定して実行する場合とほぼ同じです。ただし、service(8)を経由した場合の方が起動時の状況に近い設定で操作が行われますので、起動したあとの環境変数などの影響を受けにくくなります。
service(8)コマンドを経由してrc.dサービスの制御を行った場合と、直接実行した場合の例
# service sshd status
sshd is running as pid 1846.
# /etc/rc.d/sshd status
sshd is running as pid 1846.
#
service(8)はFreeBSD 9-CURRENTに導入されました。FreeBSD 7.3-RELEASEおよび8.1-RELEASEから利用できるようになるとみられます。サービスの制御には今後は直接rc.dスクリプトを実行するのではなく、service(8)コマンドを経由する方法が標準的な操作方法になると見られます。