FreeBSDにおいて、各種サーバソフトウェアの起動・停止を行う起動スクリプトは/etc/rc.d、/usr/local/etc/rc.dに格納されている。
いちいち/usr/local/etc/rc.d/apache22 startなどとキーを叩くのは面倒で仕方がない。
そこでportsにあるbsdadminscriptsなどを使っていたのだが、ふと気が付くと7.3あたりからserviceというコマンドが作られたようだ。
使い方。
書式。
service <起動スクリプト> start|stop|restart等々
使用例
$ sudo service dovecot status
Password:
dovecot is running as pid 1026.
$ sudo service dovecot restart
Stopping dovecot.
Waiting for PIDS: 1026.
Starting dovecot.
注意点としては、引数で与えるのはあくまでも起動スクリプト名であって、サーバソフトウェアの名前ではない、という点。
例えば、dhcpdだとisc-dhcpdで指定しないといけないが、それを思い出せないこともしばしば。
だから後述の使用法も使って、起動スクリプト名を調べるとよい。
そのほかの使い方:起動スクリプトに関する情報が得られる。
service -e
有効になっているサービスを表示する。
起動順(rcorder)に表示
service -r
無効になっているものも含めてサービスを表示する。
起動順(rcorder)に表示。
もちろん無効になっているものは、もしも有効だったら
という仮定で。
service -l
rc.dディレクトリの下にあるファイルをすべてリストする。
/etc/rc.dのほか、たとえば/usr/local/etc/rc.dなど。
-v
ほんの少しだけ説明が増える。
(試してみたら本当に少しだけだった)
例えば。-rだと、-eのときにはない起動スクリプトも表示されていることが分かる。
$ service -e|grep "/usr/local"
/usr/local/etc/rc.d/mrtg_daemon
/usr/local/etc/rc.d/jenkins
/usr/local/etc/rc.d/dovecot
/usr/local/etc/rc.d/clamav-clamd
/usr/local/etc/rc.d/clamav-freshclam
/usr/local/etc/rc.d/apache22
$ service -r|grep "/usr/local"
/usr/local/etc/rc.d/svnserve
/usr/local/etc/rc.d/rsyncd
/usr/local/etc/rc.d/rrdcached
/usr/local/etc/rc.d/munin-node
/usr/local/etc/rc.d/mrtg_daemon
/usr/local/etc/rc.d/jenkins
/usr/local/etc/rc.d/htcacheclean
/usr/local/etc/rc.d/dovecot
/usr/local/etc/rc.d/clamav-clamd
/usr/local/etc/rc.d/clamav-freshclam
/usr/local/etc/rc.d/apache22