質問: Linuxに最新版のapacheを1.3.33を入れました。 うまく動作しているのですが少し疑問に思ったので質問させてください。 RedHatなのでもともとapacheが/etc/httpdにはいっていたのを今後の為通常の/usr/local/apacheにしました。 起動する際、 /usr/local/apache/bin/apachectr start としたのですが、よくある /etc/init.d/httpd start とか書いている場合もあるのですがこの二つの違いはなんなんでしょうか? 単純に/etc/httpdのapacheは/etc/init.d/httpd start で/usr/local/apacheのapacheの場合/usr/local/apache/bin/apachectr start で起動するということですか? よろしくお願いします。
回答: ANo.1で回答したInterplayです。 まず。。 >K15とかS85って・・・なんでしょうか Kは「KILL」の略でSは「START」の略です。そのままプロセスをKILLしたりSTARTさせると言う意味で、その後の番号は順番です。 例えばapacheよりtomcat(サーブレットコンテナ)を早く起動させておかなければならない場合は、Sのあとの番号をtomcat起動用シンボリックリンクより後の番号へ競ってしなければなりません。 一番良い例はNFS先のディレクトリをSambaで共有させる場合など、起動と終了の順番がNFSとSambaでテレコになるとデッドロックします。一般的には/etc/ini.d/httpdに書かれている番号であれば、殆どのシステムで影響無い順番とされているため、デフォルト値がS85のK15となっています。 例えばSambaだと(・etc/init.d/smbd) #!/bin/sh # # chkconfig: 345 91 35 ランレベル3,4,5で適用され、Sは91でKは35でシンボリックリンクされます。ここwchkconfigは読み取っています。 システムにあわせてこの値はカスタマイズをする為です。 商用サーバでこのあたりまで気を配ってカスタマイズすることは一般的ですが個人レベルのサーバでは表面上の問題がなければ触らないのが普通かもしれません。 それからbashなりBシェルの読み方を覚えなければご質問者様の疑問は晴れる事がないでしょう。。 /etc/init/d/httpdで書かれているスクリプトの意味を理解できるよう、勉強してみてください。それが疑問を晴らす唯一の解です。 キーワードは 1.シェルの意味を理解する。 2.ランレベルについての知識を深める 3.chkconfigやntsysv(redhatだけですか)の利用方法を理解する。 以上です。少々突き放した回答となってしまいましたが、真の意味を理解するにはこれしか方法が無いと思われます。頑張ってください。