[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[FDclone-users:00166] Re: {FreeBSD,OpenBSD}/sparc64, IA64(AIX対応その後)



潮田です。

Takashi SHIRAI <shirai@unixusers.net> wrote:
>  但し、定価 7,800 円と書籍にしてはお高めです。これ以上判り
> 易い UNIX system call 解説は見たことがないので、値段に見合う
> 価値はあるかと思いますけど。
確かにちょっと高いですね。
会社に買わしてもいいけれど、たまには自己啓発してみます。


>  それって次世代 POSIX の draft じゃありませんでしたっけ?こ
> の URL で参照出来るヤツですよね?
> >http://www.unix-systems.org/single_unix_specification_v2/idx/index.html
はい、これです。
Network が細いので、
http://www.unix-systems.org/single_unix_specification_v2/download/
から落として local で見ていました。

>  現行版は「The Open Group Base Specifications Issue 6」で下
> 記 URL になると思います。
> http://www.opengroup.org/onlinepubs/007904975/nfindex.html
SUSV3 ってこんな名前になったのですね。
こちらに差し替えておこう。


>  やはり「GNU/Linux is Not UNIX」と呼ばれるだけのことはあり
> ますね。最近 main 環境を Linux にしてしまっているので、こう
> いう非 UNIX 的な挙動に振り回されてしまうことが往々にしてあり
> ます。
失礼にあたるのかもしれませんが、しらいさんとおっしゃると
NEWS
とか
FreeBSD 2.2-stable
のイメージだったのですが、最近は Linux ですか。


順序を入れ替えて
>  では最後に修正 patch です。7. で適用する patch をこれに置
> き換えて、改めて 8. の検証を行なってみて下さい。l. 1529 の修
> 正もお忘れなく。
>>	7. patch 適用後、system.c l.1529 の「#ifdef NOJOB」
>>	   を「#if 0」に書換えて「make sh bsh all」を実行。
>>	8. 作りなおした ./fd, ./fdsh, ./fdbsh に対して 1.-6.
>>	   を再度検証。
再度検証しました。
> 1. ./fd で PAGER や EDITOR 等の子 process を起動する。
正常に FD へ戻ってきます。

> 2. ./fdsh で sleep や /bin/echo 等の子 process を起動する。
正常に終了しますと書こうとしたのですが、
たまに誤動作があるようです。
誤動作を起こすトリガーを掴めないので、画面のイメージですが、
こんな感じです。
--- ここから ---
shiota@delta <~/src/OTHER/FD/FD-2.03a> $ ./fdsh
$ /bin/echo

$ /bin/echo

$ /bin/echo Hi
Hi
./fdsh: No child processes
$
$ /bin/echo Hi
Hi
$
$ /bin/echo

$ /bin/echo Hi
Hi
$
$ /bin/echo

$ /bin/echo

$ /bin/echo Hi
Hi
$
$ sleep
使用方法: sleep Seconds
$ sleep 2
$ sleep 2
$ sleep 1
$ /bin/echo

./fdsh: No child processes
$
--- ここまで ---

> 3. ./fdsh で「&」付の back ground job として 2. と同
>   様の検証。
正常に終了します。
/bin/echo もバックで動作しています。

> 4. ./fd で set -b を実行した後 1. と同様の検証。
正常に終了します。

> 5. ./fdsh で set -b を実行した後 2., 3. と同様の検証。
2. 3. とも正常に終了します。

> 6. ./fdbsh で 2., 3. と同様の検証。
2. 3. とも正常に終了します。



で、わざわざ順序を変えました
>  いえ、AIX でなく HP-UX で試してみることを提案してみたんで
> す。SA_RESETHAND だけが原因だとしたら、signal() を使った時に
> SIGCHLD が無限発呼されるのは HP-UX でも同じことだと思うんで
> す。
>  でも実際には、FDclone の子 process 生成で SIGSEGV で死んで
> しまうのは AIX だけでしたよね。HP-UX の場合何が違うのかを考
> えると、SA_NOCLDSTOP くらいしか違いはありません。
>  なので、SA_RESETHAND だけでは死んでしまう HP-UX 環境でも、
> SA_NOCLDSTOP も指定することで signal() と同様の sa_flags に
> なって、無事子 process の終了を迎えられるのではないかという
> 推測です。
の件ですが、別のスレッドにします。