[#25807] Pograming Ruby — Yoshimasa Kusano <dingo@...>

18 messages 2000/11/05

[#25856] new host at ruby-lang.org (or rubyist.org) — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです

12 messages 2000/11/09

[#25874] 子プロセスから標準出力と終了ステータスを得たい — yharuo@...7.dddd.ne.jp

はるおと申します。

88 messages 2000/11/10
[#25875] Re: 子プロセスから標準出力と終了ステータスを得たい — matz@... (Yukihiro Matsumoto) 2000/11/10

まつもと ゆきひろです

[#25876] Re: 子プロセスから標準出力と終了ステータスを得たい — WATANABE Hirofumi <eban@...> 2000/11/10

わたなべです.

[#25879] Re: 子プロセスから標準出力と終了ステータスを得たい — yharuo@...7.dddd.ne.jp 2000/11/10

はるおです。

[#25880] Re: 子プロセスから標準出力と終了ステータスを得たい — Nibu <nibu@...> 2000/11/10

newです.

[#25907] Re: 子プロセスから標準出力と終了ステータスを得たい — yharuo@...7.dddd.ne.jp 2000/11/13

はるおです。

[#25909] Re: 子プロセスから標準出力と終了ステータスを得たい — "Nobuyoshi.Nakada" <nobu.nakada@...> 2000/11/13

なかだです。

[#25910] Re: 子プロセスから標準出力と終了ステータスを得たい — yharuo@...7.dddd.ne.jp 2000/11/13

はるおです。

[#25912] Re: 子プロセスから標準出力と終了ステータスを得たい — Nibu <nibu@...> 2000/11/13

newです.

[#25914] Re: 子プロセスから標準出力と終了ステータスを得たい — yharuo@...7.dddd.ne.jp 2000/11/13

はるおです。

[#25916] Re: 子プロセスから標準出力と終了ステータスを得たい — Nibu <nibu@...> 2000/11/13

newです.

[#25917] Re: 子プロセスから標準出力と終了ステータスを得たい — yharuo@...7.dddd.ne.jp 2000/11/13

はるおです。

[#25923] Re: 子プロセスから標準出力と終了ステータスを得たい — WATANABE Hirofumi <eban@...> 2000/11/13

わたなべです.

[#25926] Re: 子プロセスから標準出力と終了ステータスを得たい — matz@... (Yukihiro Matsumoto) 2000/11/13

まつもと ゆきひろです

[#25929] Re: 子プロセスから標準出力と終了ステータスを得たい — Hideto ISHIBASHI <hideto-i@...4u.or.jp> 2000/11/13

石橋秀仁です。

[#25938] Re: 子プロセスから標準出力と終了ステータスを得たい — Takahiro Kambe <taca@...> 2000/11/14

標準の細かなことは知りませんが、

[#25943] Re: 子プロセスから標準出力と終了ステータスを得たい — yharuo@...7.dddd.ne.jp 2000/11/14

はるおです。

[#25951] Re: 子プロセスから標準出力と終了ステータスを得たい — Shugo Maeda <shugo@...> 2000/11/14

前田です。

[#25954] Re: 子プロセスから標準出力と終了ステータスを得たい — yharuo@...7.dddd.ne.jp 2000/11/14

はるおです。

[#25956] Re: 子プロセスから標準出力と終了ステータスを得たい — Shugo Maeda <shugo@...> 2000/11/14

前田です。

[#25962] Re: 子プロセスから標準出力と終了ステータスを得たい — yharuo@...7.dddd.ne.jp 2000/11/14

はるおです。

[#25976] Re: 子プロセスから標準出力と終了ステータスを得たい — matz@... (Yukihiro Matsumoto) 2000/11/14

まつもと ゆきひろです

[#25998] Re: 子プロセスから標準出力と終了ステータスを得たい — yharuo@...7.dddd.ne.jp 2000/11/16

はるおです。

[#26009] Re: 子プロセスから標準出力と終了ステータスを得たい — matz@... (Yukihiro Matsumoto) 2000/11/16

まつもと ゆきひろです

[#26013] Re: 子プロセスから標準出力と終了ステータスを得たい — yharuo@...7.dddd.ne.jp 2000/11/16

はるおです。

[#26015] Re: 子プロセスから標準出力と終了ステータスを得たい — matz@... (Yukihiro Matsumoto) 2000/11/16

まつもと ゆきひろです

[#26016] Re: 子プロセスから標準出力と終了ステータスを得たい — yharuo@...7.dddd.ne.jp 2000/11/16

はるおです。

[#26017] Re: 子プロセスから標準出力と終了ステータスを得たい — matz@... (Yukihiro Matsumoto) 2000/11/16

まつもと ゆきひろです

[#26018] Re: 子プロセスから標準出力と終了ステータスを得たい — yharuo@...7.dddd.ne.jp 2000/11/16

はるおです。

[#26023] Re: 子プロセスから標準出力と終了ステータスを得たい — Takahiro Kambe <taca@...> 2000/11/16

In message <20001116164843.7086.YHARUO@mail7.dddd.ne.jp>

[#25934] Re: 子プロセスから標準出力と終了ステータスを得たい — WATANABE Hirofumi <eban@...> 2000/11/14

わたなべです.

[#25913] Re: 子プロセスから標準出力と終了ステータスを得たい — WATANABE Hirofumi <eban@...> 2000/11/13

わたなべです.

[#25919] Re: 子プロセスから標準出力と終了ステータスを得たい — WATANABE Hirofumi <eban@...> 2000/11/13

わたなべです.

[#25924] Re: 子プロセスから標準出力と終了ステータスを得たい — yharuo@...7.dddd.ne.jp 2000/11/13

はるおです。

[#26012] reference manual to WiKi — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです

42 messages 2000/11/16
[#26051] Re: reference manual to WiKi — Koji Arai <JCA02266@...> 2000/11/16

新井です。

[#26090] Re: reference manual to WiKi — "NAKAMURA, Hiroshi" <nakahiro@...> 2000/11/17

なひです。

[#26105] Re: reference manual to WiKi — Koji Arai <JCA02266@...> 2000/11/18

新井です。

[#26279] Re: reference manual to WiKi — Koji Arai <JCA02266@...> 2000/12/03

新井です。

[#26069] Ruby デスクトップリファレンス — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです

17 messages 2000/11/17

[#26156] fork problem? — Tanaka Akira <akr@...17n.org>

ふと気がついたのですが、fork した子プロセス内で例外が発生すると、外側

82 messages 2000/11/25
[#26160] Re: fork problem? — matz@... (Yukihiro Matsumoto) 2000/11/25

まつもと ゆきひろです

[#26163] Re: fork problem? — Tanaka Akira <akr@...17n.org> 2000/11/25

In article <E13zgAK-0005kt-00@ev.netlab.zetabits.co.jp>,

[#26165] Re: fork problem? — matz@... (Yukihiro Matsumoto) 2000/11/25

まつもと ゆきひろです

[#26173] Re: fork problem? — nobu.nakada@... 2000/11/25

なかだです。

[#26176] Re: fork problem? — Tanaka Akira <akr@...17n.org> 2000/11/26

In article <200011252247.HAA09258@sharui.nakada.kanuma.tochigi.jp>,

[#26179] Re: fork problem? — nobu.nakada@... 2000/11/26

なかだです。

[#26182] Re: fork problem? — matz@... (Yukihiro Matsumoto) 2000/11/26

まつもと ゆきひろです

[#26188] Re: fork problem? — "Nobuyoshi.Nakada" <nobu.nakada@...> 2000/11/27

なかだです。

[#26190] Re: fork problem? — SHUDO Kazuyuki <shudoh@...> 2000/11/27

なかださん wrote:

[#26191] Re: fork problem? — Takahiro Kambe <taca@...> 2000/11/27

In message <200011270410.NAA09803@cafe.muraoka.info.waseda.ac.jp>

[#26192] Re: fork problem? — Tanaka Akira <akr@...17n.org> 2000/11/27

In article <200011270426.NAA08013@edge.sky.yamashina.kyoto.jp>,

[#26196] Re: fork problem? — matz@... (Yukihiro Matsumoto) 2000/11/27

まつもと ゆきひろです

[#26207] Re: fork problem? — Nakamura Akifumi <BXQ04723@...> 2000/11/27

[#26209] Re: fork problem? — matz@... (Yukihiro Matsumoto) 2000/11/28

まつもと ゆきひろです

[#26212] Re: fork problem? — Nakamura Akifumi <BXQ04723@...> 2000/11/28

[#26213] Re: fork problem? — matz@... (Yukihiro Matsumoto) 2000/11/28

まつもと ゆきひろです

[#26218] Re: fork problem? — Nakamura Akifumi <BXQ04723@...> 2000/11/28

[#26223] Re: fork problem? — matz@... (Yukihiro Matsumoto) 2000/11/28

まつもと ゆきひろです

[#26256] Re: fork problem? — Nakamura Akifumi <BXQ04723@...> 2000/12/02

[#26257] Re: fork problem? — Masato KIYAMA <masato@...> 2000/12/02

木山です.

[#26266] Re: fork problem? — Takahiro Kambe <taca@...> 2000/12/02

余談ですが、

[#26270] Re: fork problem? — Nakamura Akifumi <BXQ04723@...> 2000/12/02

[#26318] Re: fork problem? — Takahiro Kambe <taca@...> 2000/12/04

In message <3A2926E4316.F02D.BXQ04723@nifty.ne.jp>

[#26460] Re: fork problem? — Kazuyuki Shudo <shudoh@...> 2000/12/08

首藤です。

[#26465] Re: fork problem? — Nakamura Akifumi <BXQ04723@...> 2000/12/09

[#26467] Re: fork problem? — matz@... (Yukihiro Matsumoto) 2000/12/09

まつもと ゆきひろです

[#26488] Re: fork problem? — WATANABE Tetsuya <tetsu@...> 2000/12/11

渡辺哲也です。

[#26492] Re: fork problem? — Nakamura Akifumi <BXQ04723@...> 2000/12/11

[#26850] Re: fork problem? — Kazuyuki Shudo <shudoh@...> 2000/12/25

首藤です。

[#26258] Re: fork problem? — Takahiro Kambe <taca@...> 2000/12/02

In message <3A287422384.A2B9.BXQ04723@nifty.ne.jp>

[ruby-list:26163] Re: fork problem?

From: Tanaka Akira <akr@...17n.org>
Date: 2000-11-25 16:47:59 UTC
List: ruby-list #26163
In article <E13zgAK-0005kt-00@ev.netlab.zetabits.co.jp>,
  matz@zetabits.com (Yukihiro Matsumoto) writes:

> |あと、fork した子プロセス内で、(exec 前に)いくつかのファイルを close
> |したいのですが、そのファイルを使っているスレッドが他にあると close 時
> |にそのスレッドで例外が発生してしまいます。これを防ぐ方法はないでしょう
> |か?
> |
> |close-on-exec すればいいのではないか、とも思ったのですが、socket など
> |は内部的に dup して 2つ file descriptor を使っているようで、 dup した
> |ものに close-on-exec を設定することができませんでした...
> 
> むむ、ちょっとシチュエーションが想像しきれませんでした。なん
> らかの対応をしたいのですが、現時点ではどのような対応が望まし
> いのか判断できません。

えぇと、unix domain socket である種の non-forking server を作っている
のですが、時おり、その中から外部のコマンドを起動する必要があります。
ここで何も考えずに fork/exec を使ってコマンドを起動すると、server が保
持している UNIXServerだの UNIXSocket だの(に対応する filede scriptor)
が継承されるわけです。そして、このコマンドは長い間生き残るので、トラブ
ル(EOF が検出不能になる)が起きます。

# http://cvs.m17n.org/~akr/cvsconnect/ というのがその shell script に
# よる実装で、これはこれで shell script の可能性を再発見できたという意
# 味ではとても面白かったのですが、いろいろとあまりにあんまりなので
# Ruby で作りなおしているのです。

で、close さえできれば解決するわけですが、

1. 普通に IO#close するとその file descriptor を待っているスレッドに
   IOError が発生する。

  ちゃんと IOError を全部捕まえれば動くんじゃないかとは思うのですが、
  いまのところ成功していません。いまひとつ何が起きているの把握できなく
  て...

2. close-on-exec を設定しておく。

  IO#fcntl では (OpenFile の)f2 を扱えないのでうまくいきません。そもそ
  も、なぜ UNIXServer や UNIXSocket はわざわざ dup して f2 を設定する
  のか、というのも疑問ですが... half close な状態を表現するため?

  # ついでにいえば socketpair がある環境では rw な popen でも f2 は使
  # わないでほしい。

3. IO.popen で我慢する。

  close する範囲が(私の環境では) 3 - 64 と固定。
  64 を越えると変なことが起こると思う。(limit descriptors は 1064)

というように、とりあえず 3つ思いついて調べて見たのですが、どれもうまく
ありません。

fcntl(など)を f2 に発行できるようにするか、
fork した当の thread 以外の thread をすべて有無を言わさず殺すような fork
(Thread.fork_and_kill_other_threads とか?)があるといいんじゃないかなぁ、
と思っています。

# ちなみに、最初は、sendmsg/recvmsg(ないしは ioctl)による file
# descriptor の受渡しも検討したのですが、ruby/perl/python のどれでも使
# えなさそうだったので断念しました。
-- 
[田中 哲][たなか あきら][Tanaka Akira]
「くっだらないコト聞いちゃったねー$(C⊇ ごっめーん$(C⊇」
  (魔法使い養成専門 マジックスター学院 2, 南澤ミヅキ)

In This Thread