[#39699] デーモン・プロセスの作り方 — "Mitsuyasu Ichimura" <mitsuyasu@...>

こんにちは、市村と申します。

27 messages 2004/06/01
[#39710] Re: デーモン・プロセスの作り方 — Masayoshi Takahashi <maki@...> 2004/06/01

高橋征義です。宣伝モードです(_o_)

[#39711] Re: デーモン・プロセスの作り方 — nobu.nakada@... 2004/06/01

なかだです。

[ruby-list:39729] Re: デーモン・プロセスの作り方

From: とみたまさひろ <tommy@...>
Date: 2004-06-03 13:50:15 UTC
List: ruby-list #39729
とみたです。

On Wed, 2 Jun 2004 03:50:04 +0900
Masayoshi Takahashi <maki@rubycolor.org> wrote:

> つい先日発売されました、まつもとゆきひろ監修・
> 青木峰郎+後藤裕蔵+高橋征義著の『Rubyレシピブック 268の技』
> (ソフトバンクパブリッシング、ISBN4-7973-2429-5)のp.351に、
> そのものずばりの「デーモンになる」というレシピがあります。

# ああ、買わないとなあ…。268 ってのがビミョー。256 ならキリがよいんだ
# けど…。

> ↓こんな感じです。
> 
>   def daemon
>     return yield if $DEBUG
>     Process.fork{
>       Process.setsid
>       Dir.chdir "/"
>       trap("SIGINT"){ exit! 0 }
>       trap("SIGTERM"){ exit! 0 }
>       # 設定ファイルを読み直すなどのハンドラを設定してもよい
>       trap("SIGHUP"){ exit! 0 }
>       File.open("/dev/null"){|f|
>         STDIN.reopen f
>         STDOUT.reopen f
>         STDERR.reopen f
>       }
>       yield
>     }
>     exit! 0
>   end

STDIN, STDOUT, STDERR の reopen 後は f は余計なので、f.close するべき
なんじゃないかと思ったり…。

ところで、私は $stdin/$stdout/$stderr を使ってるんですが、そうじゃなく
て STDIN/STDOUT/STDERRを使う方が好ましいのでしょうか。

# 実は前から気になってたので、便乗質問。

-- 
とみたまさひろ <tommy@tmtm.org>

In This Thread