Apache を起動するコマンドがありますが、/etc/rc3.d
サーバーの再起動時に実行されません。スクリプトの名前は ですS75Apache2
。これは、リンク名に大文字の「A」が含まれているためであり、 に名前を変更すれば機能する可能性があると推測する人がいますS75apache2
。
誰か確認できますか? ドキュメントを検索しましたが、答えが見つかりません。サーバーを再起動せずにこれをテストすることはできません (再起動はしたくありません)。
答え1
Solaris の init スクリプトは面倒です。大文字の A は関係なく、 に/etc/rc.d
ある 'S' で始まるすべてのファイルを検索し/etc/rc3.d
、番号順に実行するスクリプトがあります。
それで、「基本から始める」ということになります。
/etc/rc3.d/S75Apache2
セットは実行可能ですか?そのスクリプトには「#!」行がありますか? その行は正しいですか (印刷されないバイトなどはありません)?
bash または ksh スクリプトの場合は、 として実行します
ksh -n /etc/rc3.d/S75Apache2 start
。これにより、構文エラーがあるかどうかがわかります。そのスクリプトを root として実行できる場合は、次のように実行して
/etc/rc3.d/S75Apache2 start
、スクリプトが開始および停止する/etc/rc3.d/S75Apache2 stop
かどうかを注意深く確認してください。少なくとも、スクリプトを 'start' および 'stop' 引数付きで自分で実行してください。 を使用して、実行時にスクリプトが何を行うかを確認します。スクリプトが行う内容が、想定どおりに行われるかどうかを確認します。httpd
httpd
set -x
注意深くお読みください
/etc/rc3.d/S75Apache2
。PATH
起動時にまばらにデータが読み込まれるため、スクリプトは起動時に実行可能ファイルがどこにあるか分からない場合がありますが、起動後に実行するとわかる場合があります。あまり想定しすぎないようにしてください。存在すると思われるファイルが存在しない可能性があります。KnnApache2
にスクリプトが存在しないことを確認してください。たとえば、実行レベル 3 から実行レベル 5 に移行すると、/etc/rc3.d
Solaris が実行されると思います。init
K76Apache2 stop
スクリプトがユーザー ID を適切に変更することを確認します。スクリプトはおそらく
apachectl start
いくつかのプロローグ コマンドを呼び出すだけなので、Apache にとってはこれは重要ではないかもしれませんが、直接実行する場合は、結果のプロセスに正しいユーザー ID があるhttp
ことを確認してください。正しく変更するには、スクリプト内で または何かを使用します。httpd
sudo
答え2
起動スクリプトにバグがあったことが判明しました。LD_LIBRARY_PATH 変数が適切に設定されていませんでした。スクリプトでそれを定義すれば問題は解決します。
今後の参考のために、問題の解決につながったエラーを含む起動メッセージを含むログ ファイルがあります。ファイルは次のとおりです。
/var/svc/log/milestone-multi-user-server:default.log
/etc/rc3.d/README ファイルでこれに関する参照を見つけました。また一日、また新たな知識が得られます!
答え3
独自の Apache を作成しましたか (つまり、ソース コードからコンパイルしましたか)、それとも Solaris 10 にプリインストールされている Apache をそのまま使用していますか?
まあ、あなたが言うようにSolaris 10(またはそれ以降)を使用している場合は、それはあまり問題ではありませんSolaris initスクリプトは絶対に使用しないでください、SMF を使用する必要があります。(はい、技術的には init スクリプトはまだサポートされていますが、ご指摘のとおり面倒なので、SMF の方がはるかに優れています)
Solaris 10 にプリインストールされている Apache 2.2 Web サーバーを (今すぐ、また再起動後に自動的に) 起動するには、次の操作を実行します。
svcadm enable /network/http:apache2
独自の Apache を展開している場合は、SMF マニフェストを作成し、そのマニフェストをインポートして実行する必要があります。Google で「SMF Solaris」を検索すると、多くのレシピが見つかります。