質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

サーバ

サーバは、 クライアントサーバモデルにおいてクライアントからの要求に対し 何らかのサービスを提供するプログラムを指す言葉です。 また、サーバーソフトウェアを稼動させているコンピュータ機器そのもののことも、 サーバーと呼ぶ場合もあります。

Q&A

解決済

2回答

10956閲覧

/sbin/init.d/httpd gracefulを行った際に出てくる"long lost child came home!" とは?

退会済みユーザー

退会済みユーザー

総合スコア0

Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

サーバ

サーバは、 クライアントサーバモデルにおいてクライアントからの要求に対し 何らかのサービスを提供するプログラムを指す言葉です。 また、サーバーソフトウェアを稼動させているコンピュータ機器そのもののことも、 サーバーと呼ぶ場合もあります。

0グッド

3クリップ

投稿2015/03/17 04:45

gracefulコマンドを使い、apacheのエラーログを確認してみたらlong lost child came home!と書かれていました。apacheのドキュメントを読んだり検索してみた所(数が本当に少なかったですが)、これはスコアボードが壊れた事により出力されているエラーだという事は理解できています。

今回このgracefulを実行した事によりスコアボードが壊れて、そのスコアボードが新しく生成された後に子プロセスもまた新しくできた事によりlong lost child came home!というメッセージが出力されていた・・・という解釈でいいのでしょうか?

ただ単に終了したプロセスが管理されているスコアボードが壊れたから出力されていると考えると、なんかもっと違うエラー文章の方が良かったのでは?と思ってしまいます。

誰か、深い知識もっている方がいましたら教えていただけますでしょうか?
きっとlong lost child came home!という文章がしっくりくる、という理由があるはず・・・!

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

原因はわかりませんが、子プロセスからシグナルを受け、その子プロセスの PID がスコアボードに無かったときに該当メッセージが出力されるようです。このメッセージは graceful のときだけで、特にそれ以外の処理は行なっていません。

推測になりますが、
0. graceful で子プロセスに「処理が終わったら死んでね」と通達
0. 子プロセスから「死んだ」という連絡を受けたらスコアボード書き換え
0. 子プロセスから連絡がないまま、新たな HTTPリクエストを捌かないといけないので、連絡のない子プロセスは死んだことにしてスコアボードから削除し、新たな子プロセスを起動&登録
0. 忘れたころに子プロセスから「死んだ」という連絡を受けたが、スコアボードに無いので、「死んだはずの子が実は生きていた」

とか。
すみません、ちゃんと調べていません。

投稿2015/03/19 07:46

TaichiYanagiya

総合スコア12146

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

知り合いの方からSNSを通してコメントを頂いたので、まとめをこちらにも書いておきます。

APACHEの公式サイトでは

「Apache 1.2b9 以前は、再起動や停止のシグナルを含む競合状態 (競合状態を簡単に説明すると: タイミンにグよる問題で、 具合の悪い時間帯にちょうど何かが起こると予想外の動作をする ようなことを指します) がありました。 「正しい」機能を持っているアーキテクチャでは、できるだけ このようなことが起こらないようにしています。 しかし、ある種のアーキテクチャでは競合状態は未だ確実に起こりえる ということに注意してください。
ディ スク上で ScoreBoardFile を使用しているアーキテクチャでは、 潜在的にスコアボードが壊れる可能性があります。 スコアボードが壊れた場合は、 "bind: Address already in use" (HUP 後) や "long lost child came home!" (USR1 後) といった結果になります。」

と書いてあります。
潜在的にスコアボードが壊れるケースもあるので、/sbin/init.d/httpd gracefulを行った時以外にもスコアボードが壊れた可能性があります。そしてその前回スコアボードが壊れた際に、個々の子プロセスで 継続的な HTTP コネクション (KeepAlive) に関する小さな競合状態が起こっていたとすれば、 リクエスト行を読んだ後、そしてリクエストヘッダを読む前に 子プロセスは終了しているはずです。そしてgracefulを行った際に新しくスコアボード共に過去のプロセスで途中で終了させられてしまった子プロセスが再開された為、"long lost child came home!"というエラーメッセージが出るのではないか

という結果に至りました。

投稿2015/03/19 01:00

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問