-1

これはUbuntuシステム上にあります。ユーザーが私たちの Web サイトにジョブを送信したときに、それをバッチ ジョブとして実行したいと考えています。Cmd.sh はシェル スクリプトです。ターミナルで手動で実行すると、スクリプトは正常に実行されますが、何らかの理由でバッチ ジョブとして実行されません。現在の PHP は次のとおりです。

system("echo /var/www/dbCAN/data/blast/$jobid/cmd.sh | batch");

エラーやクラッシュは表示されず、単にジョブが送信されません。さらに、このコードを変更して「| バッチ」のみを削除すると、ファイルは正常に実行されます。直接実行したくない理由は、時間がかかる可能性のある集中的なプロセスであり、通常、ジョブが完了したときにユーザーにメールを送信するためです (複数のジョブを一度に実行することはありません)。なぜこれが機能しないのか、誰にもアイデアがありますか? パスが正しいことはわかっていますが、バッチの使用法についてはわかりません。助けていただければ幸いです:)

4

1 に答える 1

0

からman batch:

atbatchの両方 で、コマンドは標準入力または-fオプションで指定されたファイルから読み込まれ、実行されます。

だから多分試してみてくださいbatch -f /var/www/dbCAN/data/blast/$jobid/cmd.sh

どうやら、batch引数をサポートしなくなったようです (引数を指定batch accepts no parametersして実行しようとしたときに取得しました-f)。以下は私にとって同等に機能しました(明らかに別のファイルパスを使用しています):

at -q b -m now -f /var/www/dbCAN/data/blast/$jobid/cmd.sh

参照: #419547 - at: バッチはパラメーターを受け入れなくなりました。

于 2012-10-24T19:09:11.023 に答える