[ << ] [ >> ]           [Top] [Contents] [Index] [ ? ]

9. エラーメッセージ

このセクションでは,findxargs,またはlocateから 得られるエラーメッセージの説明,為すべきことへのアドバイスを記述します.

このマニュアルは英語で書かれています.GNU findutilsソフトウェアはエラー メッセージを多くの言語に翻訳されています.このためできるだけ我々は,プ ログラムに自明のことでエラーメッセージを生成させようと思います.この手 法は,英語のエラーメッセージに対応する別のものを実際には見ることになる 人々に,理解してもらうようお願いすることが難しくなります.通常,自明の エラーメッセージは記述しませんし,このドキュメントでも議論しません.こ のドキュメントで議論しているメッセージとして,英後のバージョンのメッセー ジだけリストアップしています.


9.1 findのエラーメッセージ

` invalid predicate `-foo''

これは,findのコマンドラインにダッシュやその他の特殊文字で開始さ れるものが含まれていることを意味します.findプログラムはこれを, テスト,アクション,またはオプションとして解釈しようとしますが,認識は しません.テストを試みる場合,指定しているものについてドキュメントを調 査して下さい.一方,文字列がワイルドカードを展開したファイル名の場合(例 えば,コマンドラインに`*'がある場合),`./*'や`.'を代わり に使用していると考慮します.

` unexpected extra predicate'

コマンドラインに余分な括弧がある場合(例えば,`find . -print \)'), 通常はこうなります.

` Warning: filesystem /path/foo has recently been mounted'
` Warning: filesystem /path/foo has recently been unmounted'

これらのメッセージは,findがディレクトリに移動し,デバイス番号と inodeが期待したものと異なるものが見つかったときに出力されます. findが移動したディレクトリがNFSファイルシステムの場合, automountは新しいファイルシステムを移動先のディレクトリにマウン トすることが多いので(つまり,使用したいファイルシステムを知る方法です), このメッセージは出力されません.そのため,このメッセージが出力される場 合は油断しないでください - automountが信用できない可能性があり ます.他の誰かがfindの実行中にファイルシステムを捜査している可能 性を検討してください.findを迷わせたり,別のファイル集合を探して いるときに,それもファイルの集合だとみせかけたい人もいます.

` /path/foo changed during execution of find (old device number 12345, new device number 6789, filesystem type is <whatever>) [ref XXX]'

このメッセージは,findがディレクトリを変更し,期待しない場所に移 動したときに出力されます.これは二つの状況のいずれかになります.最初の ものは,"オートマウント"で,findがマウントされているファイルシ ステムの現在の場所を決定する方法を知らないときに生じます.

二番目は,findがファイルシステムの階層を降りるのではなく上がって 行くときに,ディレクトリのデバイス番号がカレントディレクトリの変更中に 変わるとき生じます.findがファイルシステムの期待しない部分に迷い 込まないように,我々はこの時点で停止します.

` Don't know how to use getmntent() to read `/etc/mtab'. This is a bug.'

このメッセージは,findが現在のマウントポイントのリストを知る方法 が分からないシステムで上記と同じように出力されます. bug-findutils@gnu.orgでたずねてください.

` /path/foo/bar changed during execution of find (old inode number 12345, new inode number 67893, filesystem type is <whatever>) [ref XXX]"),'

このメッセージは,findがディレクトリを変更したとき,ディレクトリ のinode番号が以前取得したinode番号と異なる場合に出力されます.これは通 常,findがディレクトリ階層の深いところに長時間いて,他の人が親ディ レクトリを同じファイルシステムの別の場所に移動したことを意味します.こ れは,悪意があったり無かったりします.この状況では,思いがけないファイ ルシステムの矛盾を避けるため,その時点でfindは停止します.生じた ことを理解するため,ls -lifind /path -inum 12345 -o -inum 67893を実行することが可能です.

` sanity check of the fnmatch() library function failed.'

バグの報告をしてください.findutilsのコードを自分でコンパイルし た場合,ビルドツリーのコピーを保持したまま,システムの問題を質問しても かまいません.同様の解釈として,GNUバージョンのconfigureに問題が あるように思われますが,システムのfnmatchにバグがあるということ で,恐らく正しく動かないでしょう.

` cannot fork'

-execアクションや,似たようなもの(-okなど)を使用していて, システムがフリーのプロセススロットを使いきった場合に,通常これが発生し ます.また,システムが非常にビジーでシステムの最大プロセスの制限に到達 したり,リソースの制限に到達したことも考えられます.暴走したプロセスを システムで調査してください(psが動作すればですが).プロセススロッ トには,`root'の利用に予約されているものもあります.

` some-program terminated by signal 99'

-execやそれに似たもので起動されたプログラムは,異常終了のシグナ ルでキルされるものもあります.これは,それを報告するだけのメッセージで す.


9.2 xargsのエラーメッセージ

` environment is too large for exec'

このメッセージは環境変数が設定されすぎて(または,大きな値になっていて) プログラムを呼び出すプログラムのコマンドラインの引数の長さに関するシス テムの制限によって,余裕が無いことを意味します.これを意識的に行ってい るかどうかを確かめたいと思います.環境変数を未設定状態にしたり,現在の シェルを終了したりしてみてください.

` can not fit single argument within argument list size limit'

`-i'オプションを使用していて,xargsのコマンドラインが非常に 大きな項目があり,適切に実施できないほどになっていて,コマンドラインを 作成する空間が十分に無いことを意味します.この問題は`-s'オプション で回避できると思いますが,デフォルトのサイズは非常に大きいものです. xargsを壊すぐらいに大きいものを試していることでしょう.

` cannot fork'

findの同様のメッセージの記述を参照してください.

` <program>: exited with status 255; aborting'

xargsが実行するコマンドが255のステータスで終了したとき, xargsは停止することになっています.こうすることを期待しない場合, プログラムをシェルスクリプトから呼び出して,255のステータスを返さないよ うなラッパーにしてください.

` <program>: terminated by signal 99'

findの同様のメッセージの記述を参照してください.


9.3 locateのエラーメッセージ

` warning: database `/usr/local/var/locatedb' is more than 8 days old'

locateプログラムは,updatedbによって前もって構築されたデー タベースに依存します.しばらく実行しないとそうなります.この問題を修正 するために,updatedbを手動で実行してください.これは,システムか らしばらく離れていたときに発生することが多く,それは,定期的な"cron" タスクが実行されないためです.

` locate database `/usr/local/var/locatedb' is corrupt or invalid'

これは発生すべきではありません.updatedbを再実行してください.動 作するが,locateがまだこのエラーを生成する場合,locate --versionupdatedb --versionを実行してください.これらは同じ出 力を生成すべきです.そうでない場合,道具をまぜて使用しています. `$PATH'環境変数と,シェルのaliase(もしあれば)を調べてください.両 方のプログラムがGNUバージョンであれば,これはバグです.これらのプログラ ムのすべてのバージョンは,問題なければ相互互換性があるべきです. bug-findutils@gnu.orgでたずねてみてください.


9.4 updatedbのエラーメッセージ

updatedbプログラム(と,それが呼び出すプログラム)はエラーメッセー ジを出力しますが,ガイダンスを要求する人がいそうにありません問題があっ て.これらを理解したい場合,bug-findutils@gnu.orgでたずねてみ てください.


[ << ] [ >> ]           [Top] [Contents] [Index] [ ? ]

This document was generated by Akihiro Sagawa on September, 28 2005 using texi2html 1.70.