読者です 読者をやめる 読者になる 読者になる

CubicLouve

Spring_MTの技術ブログです。https://github.com/SpringMT (http://spring-mt.tumblr.com/ からの移転)

デーモンとは

メモ書き程度に

デーモン

語源は悪魔のデーモンではなく、守護神のほうらしい。 デーモン (ソフトウェア) - Wikipedia

まあ、それはそれとして デーモン(daemon)は長時間動き続けるプロセスのことです。 APUEのデーモンより

  • ファイルモード作成時マスクをumask 0でリセットする

    • プロセスがファイルを作成するとき、マスクが許可をオフにすることを避けるため
  • 新しいセッションを作成する( 制御端末から切り離し、プロセスグループのリーダとなり、セッションのリーダーとなる)

    • forkして、親をexitする
    • setsidを呼ぶ
    • 制御端末がないので、出力の表示場所がない
      • ps のTTYが ? or ?? になっている
    • エラー状態の報告はsyslogを使う等する
  • cwdをルートディレクトリ(/)に変更する

  • 不必要なファイルディスクリプタをcloseしておく

  • 標準入力、標準出力、標準エラー出力を閉じる

    • 対話的なインターフェースから入力も受けない
    • 同じ端末装置に他のユーザーがログインしても、デーモンの出力が端末に現れないようにする

rubyだとProcess.daemonを呼ぶだけでデーモンになる

Refernce