Cygwin なんでも掲示板

一覧最新記事過去一覧 | 検索FAQアンテナHOME
(新規投稿・発言はできません)


スレッド

└◇2103:
プログラムミス?? [たらい] 04/22 17:49

 └◇2104:追記情報 [たらい] 04/22 <


2103● プログラムミス??[ たらい ] 2004 04/22 17:49
はじめまして、たらいと申します。
cygwin使い始めてまだ2ヶ月ばかりで、
unixもろくに知らないような人間です。

現在以下の環境で5分間隔でbashを起動して
某DBのリカバリー処理を行っています。
 OS:Win2k Server 5.00.2195(US版OS)
 CPU:Intel Xeon 2.8GHz
 MEM:1G

処理が正常に終わるとタスクマネージャのプロセスから
bash.exeが消えますが、何かしらのエラーがあった場合に
bash.exeがタスクに残ったままになってしまいます。

当処理はリカバリーに必要なファイルがあるときのみ行うのですが、
正常に終了したり、しなかったり(bash.exeが残る)します。
(1日に2回くらい、多いときで4回ほど残ります)
処理自体は20秒もかかりません。

シェルはバッチファイルから起動し、
「bash -x シェルファイル 引数 > ログ 2>&1」でデバッグも行っていますが、
「exit1」ではなくコマンド(+echo メッセージなど)で終了したりします。
ソースを見ると落ちた次のコマンドが「cat」であることが多いのです。
catでファイルを開いて中身を変数(配列)に入れています。
(変数=`cat ${ファイル}`)
ただし、ファイルは確実に存在し(シェル起動直後にtouchにて作成)、削除したりもしていません。
変数等も何度も確認しましたが問題はありません。

全てのコマンドで、エラー(lsで存在しないファイルの情報を見ようとした時など)チェックを
コマンドの次行でおこない、0以外ならexit 1で終了させています。
catのエラーならこのチェック関数で引っかかるのですが、
そこまで行っていません。

ただ、Win2K Server 日本語OSでのテストではこの様なことは起こりません。(テスト稼動2週間以上エラーは発生しません)

これはただのPGミスなのでしょうか?
それともcigwinのバグなのでしょうか?
またはOSとの相性が悪いだけなのでしょうか?

この様な経験がある方がいましたらご教授ください。

以上、よろしくお願いいたします。
スレッド一覧


2104● 追記情報[ たらい ] 2004 04/22 18:02
bashのバージョンは2.05で、
catのバージョンは2.0.21です。
スレッド一覧

早田のホームページへ
CGIROOM