1

主にffmpegに関連するさまざまな機能を実行する、開発者が私のために書いたスクリプトがあります。を使用して手動でスクリプトを実行すると

sh /home/site/rawvids/encode.sh > /home/site/rawvids/log.txt

スクリプトは正常に実行されますが、cron を介して実行すると、エラー コード 127 で失敗します

何か案は?

ls -lスクリプトでは次のように表示されます。

-rwxrwxrwx 1 サイトの無人 3786 7 月 23 日 17:07 /home/site/rawvids/encode.sh*

4

3 に答える 3

2

エラー 127 は、「コマンドが見つかりません」を意味します。スクリプト内で、 of にないいくつかのコマンドを実行する可能性がありますcron( を見れば、cron の PATH が何であるかがわかります/etc/crontab)。

シェルで現在の PATH を確認できます。

$ echo $PATH

次に、この PATH をスクリプトの先頭にコピーします。

PATH=... 

代わりに、...以前に取得した行を ( を使用して) 記述する必要がありますecho $PATH

#!/bin/shまた、スクリプトの先頭にシバン行があるかどうかも確認してください。shコマンドラインでスクリプトなしで起動するとインポートされます。

/etc/crontabまた、スクリプトを実行する行を示していただければ幸いです。

于 2012-07-26T18:36:55.287 に答える
0

ほとんどの場合、cron に設定されていない環境変数に依存しているか (cron が何かを使用しているかどうかはわかりません)、または cron が実行されている権限が間違っています。cron バージョンでそのように出力をパイプすると、出力が得られますか?

于 2012-07-26T17:34:15.733 に答える
0

同じ...、私はこれらのパスの問題に耐えることができます.ffprobeパスへのシンボリックリンクを設定するか、不足しているものは何でも.

ln -s /usr/local/bin/ffprobe /home/ec2-user/.rvm/rubies/ruby-2.3.0/bin/ffprobe

于 2016-09-17T00:40:36.227 に答える