タグ

2008年9月10日のブックマーク (2件)

  • 偽偽夜食日記: daemon起動時の二重forkの理由 (2005-03-16 )

    カテゴリ: UNIX daemonプロセスを起動する際に2回forkするというのは、もはやFAQの領域にあることだが、なぜ2回forkする必要があるのか、それぞれのforkにどういう効果があるのかということまで書いてあるものは少ない。私も今まで疑問に思いつつ放置していたが、ついにそのことについて書かれているものが見つかった。 Unix Programming Frequently Asked Questions 日語訳 - 1 プロセス制御 1.7 プログラムをデーモンとして動かすにはどうすればいいですか? これをきちんと理解するには、セッションと制御端末についてより詳しく知る必要がある。セッションとは、ユーザーがとある端末からログインして生成したプロセスの集合である。ユーザーは端末のキー操作によりプロセスの一時停止や終了などの制御を行うことができるが、セッションはこの制御の影響範囲を

    inak0shi
    inak0shi 2008/09/10
    デーモンの作り方一般論
  • デーモンプログラムの基礎知識

    ゾンビプロセスを作らないために デーモンプロセスは、自分が起動されたシェルなどを外界から切り離すために、常駐処理をforkして親プロセスを終了させます。 通常の処理では、親プロセスは子プロセスの終了状態(終了ステータス)を監視しますが、デーモンプロセスは、常駐処理が動き始めると不要になります。このため、子プロセスの終了状態が必要ないことをシステムに宣言しなければなりません。そうすれば、常駐処理が終了しなくても親プロセスは終了してしまい、ゾンビプロセスとしてシステムに残ることはなくなります。 標準入出力 デーモンの動作を行うと、少なくとも stdin, stdout, stderr は必要なくなります。 Python では os.dup2 を使って標準入出力と標準エラー出力のファイル・ディスクリプタをクローズします。 out_log = file('/out/log/file/name',

    デーモンプログラムの基礎知識
    inak0shi
    inak0shi 2008/09/10
    シェルプログラミングでデーモンプロセスを作る方法