一つのシステムでサービスをいくつも立ち上げているということは よくあることです。 それらには独自の立ち上げかたがあることがあり、 それぞれ有利な点があります。
Ports collection やパッケージからインストールしたソフトウェアは
しばしば /usr/local/etc/rc.d
にスクリプトを置き、
システムが起動した時には start
、システムをシャッ
トダウンする時には stop
を引数にして実行します。
これは root
で実行すべき、または
root
で起動することを期待されているシステム
ワイドなサービスを起動する場合に推奨される方法です。
これらのスクリプトはパッケージの一部としてインストール時に記録され、
パッケージとともに削除されます。
/usr/local/etc/rc.d
にある
一般的なスクリプトは次のようなものです。
#!/bin/sh echo -n ' FooBar' case "$1" in start) /usr/local/bin/foobar ;; stop) kill -9 `cat /var/run/foobar.pid` ;; *) echo "Usage: `basename $0` {start|stop}" >&2 exit 64 ;; esac exit 0
このスクリプトはその目的を果すべく起動時に start
、
シャットダウン時に stop
をつけて呼ばれます。
サービスの中には固有のポートに接続を受けたときに
inetd(8) から起動されるものもあります。
これはメールリーダサーバ (POP や IMAP 等) の場合によくあります。
これらのサービスは /etc/inetd.conf
ファイルを編集することで有効化されます。
このファイルの編集に関する詳細は inetd(8) を見てください。
これらの他に /etc/rc.conf
による有効化/無効化がカバーされていないサービスもあります。
それらは伝統的に /etc/rc.local
にコマンドを書き込むことで実行されていました。
FreeBSD 3.1 にはデフォルトの /etc/rc.local
は存在していません。 もし管理者によって作られていれば、
その時は一般的なやりかたとして認められるべきでしょう。
rc.local
は最後の場所と考えられているということを
知っておいてください。 サービスを起動させるのにもっといい場所があるなら
そこから始めてください。
/etc/rc.conf
でその他のコマンドを実行しないでください。
そのかわり、デーモンの起動やブート時のコマンド実行は
/usr/local/etc/rc.d
にスクリプトを配置してください。
この他にサービスの起動に cron(8) を利用することもできます。
このアプローチには、cron(8) がそのプロセスを
crontab
の所有者権限で実行したり、サービスが
非特権ユーザによって立ち上げられ管理されるなどといった有利な点が
いくつもあります。
これで cron(8) の機能の利点を得ることができます。
日時の指定を @reboot
で置き換えることでジョブは
システムがブートした直後、cron(8) が起動した時に実行されます。
本文書、および他の文書は https://download.freebsd.org/ftp/doc/ からダウンロードできます。
FreeBSD に関する質問がある場合には、
ドキュメント を読んだ上で
<questions@FreeBSD.org> まで (英語で) 連絡してください。
本文書に関する質問については、
<doc@FreeBSD.org> まで電子メールを (英語で) 送ってください。