2

他の誰かのBASHスクリプトのモンスターを継承しました。スクリプトは、とんでもない量のメモリ(約1GB)を使用するように記述されています。問題なくシェルから実行できますが、cronから実行すると、sig障害でクラッシュします。

コメントが不十分な巨大なものを掘り下げることとは別に、sig障害に遭遇することなくcronから実行する方法はありますか?

乾杯、

スティーブ

4

3 に答える 3

2

cronを使用して何かを実行すると、手動で実行したときに自分の変数と比較して、環境変数が異なるか、単に設定されていないという問題が発生します。cronが何かを実行するときに、PATHなどが適切に設定されないことがよくあります。そのため、デフォルトのPATHにあるperlや一般的なコマンドなどの場合でも、スクリプト内で実行可能ファイルへのフルパスを指定することが重要です。より多くの情報がなければ、問題が正確に何であるかを推測することは困難です。

于 2008-11-05T17:40:32.860 に答える
2

ttyに接続することを期待していますか、それともオープンstdinを使用することを期待していますか?cronから実行しているときに、ランダムなファイルをinoutとしてリダイレクトしてみてください。

どのようなsegfaults?Bash、またはそれが呼ぶもの?

問題が何であるかに関するコアファイルからのヒントはありますか?

于 2008-11-05T17:41:36.087 に答える
-1

stdout と stderr に移動先があることを確認してください

/path/to/bigscript.sh &> /dev/null

[編集] 特にデバッグモードで実行している場合は、/dev/null 以外のファイルを使用したい場合があります;)

非常に巨大なので、デバッグで実行することが役立つかどうかはわかりませんが、試すことができます。bash では、これは「-x」オプションであり、シバンに入れるだけです。

他の回答で述べたように、それが環境変数である可能性は十分にあります。

于 2008-11-05T18:35:51.687 に答える