ジョブはcronで実行されず、手動で実行されています。

ジョブはcronで実行されず、手動で実行されています。

このサイトで同様の投稿を見ましたが、私の検索クエリに一致する投稿はありません。

私のcrontabには以下がありますが、うまくいきません。

 * * * * * perl sc.pl

以下のように手動で試してみると、出力が表示されます。

**perl sc.pl**

この問題を解決するのに役立ちます。

答え1

@glenn jackmanが述べたように、通常、引数にファイルの絶対パスまたは実行可能ファイルのフルパスを指定する必要があることがよくあります。

プログラム(cron、現在のシェル/ターミナルなど)を実行したいプロセスPATHには、実行可能ファイル(perlなど)を検索するディレクトリを指定する環境変数があります。実行可能ファイルの実行は通常、現在の作業ディレクトリ(またはパスがないファイル名)への相対パスに基づいており、検索しないか、場所を魔法のように知らない。 cron操作は通常、対話型のターミナルセッションと同じパス変数を持たず、スクリプトファイルと同じディレクトリから開始されない可能性があります(特に次のようにする必要がある場合)。CD手動で実行する前にディレクトリに保存するperl sc.pl

私たちの最初の提案はPerlバイナリへの絶対パスを試み、plスクリプト。例:

* * * * * /usr/bin/perl /path/to/sc.pl

関連情報