起動スクリプト操作コマンドservice(Linuxのchkconfigの簡易版)

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