[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[FDclone-users:00166] Re: {FreeBSD,OpenBSD}/sparc64, IA64(AIX対応その後)
- Subject: [FDclone-users:00166] Re: {FreeBSD,OpenBSD}/sparc64, IA64(AIX対応その後)
- From: SHIOTA Shoichi <Shoichi.Shiota@lightwell.co.jp>
- Date: Fri, 09 May 2003 14:10:29 +0900
潮田です。
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 の終了を迎えられるのではないかという
> 推測です。
の件ですが、別のスレッドにします。