
Ubuntu日本語フォーラム

ログインしていません。
ubuntu10.04を使用しています
いつからかapacheが自動起動しなくなりました.
runlevelで調べるとrunlevel 2で動いていたので
sysv-rc-confでapacheにチェックいれたのですがOS起動時に自動起動してくれません
init 2とやってもだめでした
OSが起動してから/etc/init.d/apache2 startで起動すれば起動します。
ログなどどこか確認すべき場所ありますでしょうか??
オフライン
silvia様
OSが起動してから/etc/init.d/apache2 startで起動すれば起動します。
とのことですので、apacheの起動スクリプトは/etc/init.d/直下にはあるようですね。
では、/etc/rc2.d/直下にはシンボリックリンクはありますでしょうか?
ご確認をお願いします。
返信ありがとうございます.
/etc/rc2.d/S91apache2 がありましたがこのファイルでしょうか??
またapach2は自動起動しませんがsshdは自動起動していることを確認しました.
/etc/init.d/sshはありましがた/etc/rc2.d/にはsshのファイル?はありませんでした。
よろしくお願いします。
tista による投稿:
silvia様
OSが起動してから/etc/init.d/apache2 startで起動すれば起動します。
とのことですので、apacheの起動スクリプトは/etc/init.d/直下にはあるようですね。
では、/etc/rc2.d/直下にはシンボリックリンクはありますでしょうか?
ご確認をお願いします。
オフライン
/etc/rc2.d/S91apache2 がありましたがこのファイルでしょうか??
daemonスクリプトで実体のあるファイルが/etc/rc2.d/以下に存在するというのは不思議ですね。
Ubuntuのシステムではスクリプトの実体は/etc/init.d/以下にのみ存在し、各rcX.d/以下にはその実体へのシンボリックリンクとなっているのが健全なのですが・・。
もし/etc/rc2.d/S91apache2が実体なら、/etc/init.d/以下の当該スクリプトと完全に一致していますか?
editorのdiffツールなどを利用して調査してください。
また、terminalにて/etc/rc2.d/S91apache2を実行し、出力を確認してください。
既にapacheを利用されているユーザということなので詳細な解説は割愛させて頂きます。
申し訳ありませんls -alで調べると/etc/init.d/apache2へのシンボリックリンクでした。
なので/etc/rc2.d/S91apache2 start|stopなどでapacheを制御できました。
tista による投稿:
/etc/rc2.d/S91apache2 がありましたがこのファイルでしょうか??
daemonスクリプトで実体のあるファイルが/etc/rc2.d/以下に存在するというのは不思議ですね。
Ubuntuのシステムではスクリプトの実体は/etc/init.d/以下にのみ存在し、各rcX.d/以下にはその実体へのシンボリックリンクとなっているのが健全なのですが・・。
もし/etc/rc2.d/S91apache2が実体なら、/etc/init.d/以下の当該スクリプトと完全に一致していますか?
editorのdiffツールなどを利用して調査してください。
また、terminalにて/etc/rc2.d/S91apache2を実行し、出力を確認してください。
既にapacheを利用されているユーザということなので詳細な解説は割愛させて頂きます。
オフライン
sysv-rc-conf で確認されたとのことですが、チェックは、2、3、4、5 のいずれにも入っていますか?
オフライン
返信ありがとうございます
はい。2.3.4.5にチェックが入っています
今気になったのですが自動起動しているsshはどこもチェックが入っていないです.
petitbootang による投稿:
sysv-rc-conf で確認されたとのことですが、チェックは、2、3、4、5 のいずれにも入っていますか?
オフライン
silvia様
話の腰を折るようで申し訳ありませんが、今はapacheの正常な自動起動に注力したほうが得策かと思われます。
ここでsshの自動起動の仕組みから解説したのでは紙面がいくらあっても足りないというのが正直なところです。
まずは/var/log/messagesなどのlogからapacheに関するwarningやerrorがないかなどを確認して頂き、apache2ユーザである識者の方からのreplyを待つのが最も解答に早く到達できると思われます。
出過ぎた発言では御座いますが、質問内容がころころ変わると回答者は何を答えていいのか苦慮する場合があります。
はい、申し訳ありません。apacheのみに集中します。
apacheもsshも同様の仕組みで自動起動しているものと思っていました.
そこでsshが自動起動しているのであればなにか解決のヒントになるではと思い書いてしまいました。気を付けます
/var/log/messagesには|grep apacheとしても情報が見つかりませんでした。
tista による投稿:
silvia様
話の腰を折るようで申し訳ありませんが、今はapacheの正常な自動起動に注力したほうが得策かと思われます。
ここでsshの自動起動の仕組みから解説したのでは紙面がいくらあっても足りないというのが正直なところです。
まずは/var/log/messagesなどのlogからapacheに関するwarningやerrorがないかなどを確認して頂き、apache2ユーザである識者の方からのreplyを待つのが最も解答に早く到達できると思われます。
出過ぎた発言では御座いますが、質問内容がころころ変わると回答者は何を答えていいのか苦慮する場合があります。
オフライン
初投稿になります。今後ともよろしくおねがいします。
https://forums.ubuntulinux.jp/viewtopic.php?pid=65714
という現象があるようです。参考になれば
オフライン
もし仮に、/etc/init.d/apache2へのシンボリックリンクが/etc/rc2.d/Sxxapache2として完全で、
sysv-rc-confにて当該runlevelへの起動設定が問題なかった場合、
これはあくまで当方の推測ですが、upstart処理中にconsoleへアクセスが集中し一時的にabortされその後回復できていないのではないかと。
もしかしたらdmesg出力にfatal I/O errorのようなものが記録されるかも知れません。
最も簡便にそれを検証するにはapache2起動スクリプト冒頭に意図的に遅延を入れて起動するというものです。
ただし、その手順を投稿する前に識者の方のreplyを待つべきと考えますので、もう暫くお待ち下さい。
silvia による投稿:
/var/log/messagesには|grep apacheとしても情報が見つかりませんでした。
以下を確認してみてください。
□0) そもそも「Apacheが起動していない」はどのように確認されましたか? Webサーバーとしてアクセスできるかどうかではなく、「service apache2 status」でステータスを見ているという理解で良いでしょうか。もし「Webサーバーとしてアクセスできるかどうか」で判断されている場合、実は起動はされているけどアクセスできないだけ、ということがありえます。
□1) OS起動後、Apacheが起動していない状態で /var/log/apache2/error.log を開き、「Apache/2.2.14 (Ubuntu) configured -- resuming normal operations」といったメッセージがOS起動のタイミングで出ているかを確認してください。
□2) あるいは、同ファイルにOS起動のタイミングに前後して、何か変なメッセージが出ていないかを見てください。自信がない場合は、そのままコピー&ペーストしてください。
1 も 2 も何もない、ということだと、そもそもApacheの起動すら仕掛けられていない、ということになるので、runlevel コマンドが unknown を吐いているケース(init系の自動処理がきちんと機能しなくなっているケース)か、その類似現象(runlevel=2なんだけど何故かrunlevel=2でemitされる各種イベントハンドラがキックされていない)だと期待したいところです。
ということで、
□3) 1も2も何もない場合は、「service cron status」の出力を教えてください。これは、runlevel=2時に起動される各種起動スクリプトが正常にキックされていない場合、cron(/etc/init/cron.conf::start on runlevel {2345}) も正常起動しないことが期待されるからです。
なので/etc/rc2.d/S91apache2 start|stopなどでapacheを制御できました。
ということなので、そもそもキックされていないケースを疑うのが良さそうです。
あとありえるとすると、「(DHCPクライアントとして設定されている&IPアドレス取得に時間がかかる)という条件が揃っていて、apacheが起動しようとする時点ではIPアドレスがまだ付いていない」あたりでしょうか。
オフライン
chai による投稿:
初投稿になります。今後ともよろしくおねがいします。
https://forums.ubuntulinux.jp/viewtopic.php?pid=65714
という現象があるようです。参考になれば
chalさん:
返信ありがとうございます。
runlevelでN 2と返ってくるの大丈夫だと思います。
ありがとうございます。
オフライン
hitoさんへ:
返信ありがとうございます。
hito による投稿:
□0) そもそも「Apacheが起動していない」はどのように確認されましたか? Webサーバーとしてアクセスできるかどうかではなく、「service apache2 status」でステータスを見ているという理解で良いでしょうか。もし「Webサーバーとしてアクセスできるかどうか」で判断されている場合、実は起動はされているけどアクセスできないだけ、ということがありえます。
ブラウザでアクセスして確認していました.起動直後に確認したところ「Apache is NOT running.」と出力されていました。
これからはstatusを見て判断するようにしていきたいと思います。ご指摘ありがとうございます。
hito による投稿:
□1) OS起動後、Apacheが起動していない状態で /var/log/apache2/error.log を開き、「Apache/2.2.14 (Ubuntu) configured -- resuming normal operations」といったメッセージがOS起動のタイミングで出ているかを確認してください。
□2) あるいは、同ファイルにOS起動のタイミングに前後して、何か変なメッセージが出ていないかを見てください。自信がない場合は、そのままコピー&ペーストしてください。
1 も 2 も何もない、ということだと、そもそもApacheの起動すら仕掛けられていない、ということになるので、runlevel コマンドが unknown を吐いているケース(init系の自動処理がきちんと機能しなくなっているケース)か、その類似現象(runlevel=2なんだけど何故かrunlevel=2でemitされる各種イベントハンドラがキックされていない)だと期待したいところです。
ということで、
□3) 1も2も何もない場合は、「service cron status」の出力を教えてください。これは、runlevel=2時に起動される各種起動スクリプトが正常にキックされていない場合、cron(/etc/init/cron.conf::start on runlevel {2345}) も正常起動しないことが期待されるからです。なので/etc/rc2.d/S91apache2 start|stopなどでapacheを制御できました。
ということなので、そもそもキックされていないケースを疑うのが良さそうです。
あとありえるとすると、「(DHCPクライアントとして設定されている&IPアドレス取得に時間がかかる)という条件が揃っていて、apacheが起動しようとする時点ではIPアドレスがまだ付いていない」あたりでしょうか。
1.2ともに特にerror.logに記録はありませんでした。
service cron statusを試したところ
cron start/running, process 845
という出力が返ってきました。
apacheの設定がおかしくなっているのでしょうか?
オフライン
tista による投稿:
もし仮に、/etc/init.d/apache2へのシンボリックリンクが/etc/rc2.d/Sxxapache2として完全で、
sysv-rc-confにて当該runlevelへの起動設定が問題なかった場合、
これはあくまで当方の推測ですが、upstart処理中にconsoleへアクセスが集中し一時的にabortされその後回復できていないのではないかと。
もしかしたらdmesg出力にfatal I/O errorのようなものが記録されるかも知れません。
最も簡便にそれを検証するにはapache2起動スクリプト冒頭に意図的に遅延を入れて起動するというものです。
ただし、その手順を投稿する前に識者の方のreplyを待つべきと考えますので、もう暫くお待ち下さい。
tistaさんへ:
返信ありがとうございます
cat /var/log/dmesg |grep fatalとやってみたのですがこれで確認できますでしょうか?
結果ですが特になにも記録されていませんでした。
手順よろしければお願いします、お手数おかけしてすいません
オフライン
silvia様
当方はapacheユーザではないため、可能なら識者の方のTipsを待ちたいところですが、最も簡便な方法で遅延起動を試してみましょうか。
下記の作業を始める前にrc2.d/以下にあるapache2のシンボリックリンクは削除しておいて下さい。
必要なときにリンクを張り直せますので。
まず、お使い慣れたeditorにて下記ファイルを開きます。ex)viなら以下のようになるでしょう。
sudo vi /etc/rc.local
Lucidでは初期状態のrc.localは最終行のexit 0のみがcomment outされていると思います。
!/bin/sh -e # # rc.local # # This script is executed at the end of each multiuser runlevel. # Make sure that the script will "exit 0" on success or any other # value on error. # # In order to enable or disable this script just change the execution # bits. # # By default this script does nothing. exit 0
そこで、exit 0の手前の行に30秒間の遅延を入れ、apache2を起動するような下記の行を追記してみます。
30秒はあくまで例ですので、マシンの起動時間との兼ね合いでgnome-sessionが完全に起動し終わるタイミングに合わせて変更して頂いても結構です。
sleep 30 && . /etc/init.d/apache2 &
これでどのような変化が起こるか観察してみて下さい。
(捕捉)
正しく遅延しているかどうかはbootchart等を利用して確認すると良いでしょう。また、本来rc.localはあまり使われないほうが良いので、あくまで原因検索のための一時的な処置とお考え下さい。
tista による投稿:
コード:
sleep 30 && . /etc/init.d/apache2 &これでどのような変化が起こるか観察してみて下さい。
(捕捉)
正しく遅延しているかどうかはbootchart等を利用して確認すると良いでしょう。また、本来rc.localはあまり使われないほうが良いので、あくまで原因検索のための一時的な処置とお考え下さい。
tista様
ありがとうございます。
sleep 30 && . /etc/init.d/apache2 &
を試してみましたがapacheは起動しませんでした。
というよりrc.localを読み込んでいないようです
DNS変更のために以下のコマンドをrc.localに書き込んでDiCEを動かしていたんですがDiCEも動かなっている状況です。
/usr/local/bin/DiCE/diced -d -l
bootchartをインストールしてみましたがインストールしただけでは/var/log/bootchartに画像は保存されないのでしょうか?
お手数おかけしてすいません。
オフライン
というよりrc.localを読み込んでいないようです
DNS変更のために以下のコマンドをrc.localに書き込んでDiCEを動かしていたんですがDiCEも動かなっている状況です。
読み込んでいないかどうかは判断しかねます。
なぜなら、追記した構文の不備が原因で正常にexit 0していないために処理がabortされた可能性もあるからです。
rc.localを本当に読み込めないならそれは別な重大問題です。
では、下記のようにすればどうなりますでしょうか。
sleep 30 && . /etc/init.d/apache2 start &
また、bootchartの件はとりあえず後にしましょう。
tista による投稿:
というよりrc.localを読み込んでいないようです
DNS変更のために以下のコマンドをrc.localに書き込んでDiCEを動かしていたんですがDiCEも動かなっている状況です。読み込んでいないかどうかは判断しかねます。
なぜなら、追記した構文の不備が原因で正常にexit 0していないために処理がabortされた可能性もあるからです。
rc.localを本当に読み込めないならそれは別な重大問題です。
では、下記のようにすればどうなりますでしょうか。コード:
sleep 30 && . /etc/init.d/apache2 start &また、bootchartの件はとりあえず後にしましょう。
tista様へ:
sleep 30 && . /etc/init.d/apache2 start &
を試してみてもapache2 statusでは動作していませんでした。
オフライン
ご確認ありがとう御座います。
そうですか・・・。
rc.localに書いてもboot時に起動できず、後で端末からスクリプトを走らせると起動できるというのはなかなか手強い問題ですね。
当方もapacheユーザならもっと助力できたのですが、これ以上は識者の方のreplyを待って頂いたほうが得策です。
従いまして、当方の主導のもと行ったこれまでの作業による変更は一旦元に戻しておいて下さいますようお願いします。
(作業内容を覚えているうちに元に戻さないと後で別な問題を引き起こす可能性が高まります。)
あとはifupが走ってNetworkManagerが起動しnetworkの設定が完了するタイミングと、その結果を利用するapacheの時間的な起動タイミングなども引き続きご自身でもお調べ頂く等してみてください。進展があれば随時投稿していただければ当方でも注視しておきます。
最後に、bootchartですが、本来なら自動で/var/log/bootchart/以下に
hostname - Ubuntu version - date - number.png
のようにpng形式の画像ファイルと同名のgzip圧縮tarファイルが保存されます。
ただし、pngを生成するのに若干の時間(数分)が必要です。
bootchartはこちらから意図的に停止させない限り(grubに指定しない限り)起動の都度動作しますので、本当にご不要ならapt-get removeしておくと良いです。
tista様:
お世話になっております。
変更部分を元に戻しました。
引き続き原因を調べるよう努力してみます。
何日か粘って解決しない場合はもうすぐubuntu10.10もリリースもされますし
再インストールも視野に入れようとおもいます。
bootchartの説明もありがとうございます。
便利なツールをまた一つ知れてよかったです。
長い間お付き合いありがとうございました
オフライン