/etc/cron.d/mycron
に次のようなcronジョブがあります。
0 3 * * * Apache php /path/to/my/script.php
同じファイルに、rootおよび他のユーザー(動作する)として実行を開始する他のcronジョブがありますが、何らかの理由で、Apacheとして実行されているこのジョブは実行されておらず、/var/log/messages
で何も報告していないか、 cronファイルのMAILTO
アドレス。 su Apache
してcronjobのコマンドを実行すると、正常に動作しますが、cronはそれを好みません。
これは私にとって長期にわたる問題であり、これまでに次の可能性を集めてきました。
/etc/security/access.conf
は完全にコメント化されていますが、crondを使用してApacheをブロックするPAMまたは/etc/security/access.conf
設定がいくつかあります。この問題に関するアイデアや経験、および解決策は何ですか?
ありがとう
/usr/bin/php
grep Apache /etc/passwd
私の知る限り、ユーザーは常にホームディレクトリを持っている必要があります。/homeに存在しない可能性があります。ユーザーのホームディレクトリを設定する必要があります。ユーザーが持っていない場合は、cron.dファイルで直接指定できます。
おそらく、PATH =/usr/bin /も指定するか、コマンドのフルパスを指定する必要があります。
HOME=/tmp
0 3 * * * Apache /usr/bin/php /path/to/my/script.php
cron
はデフォルトで、非常に限られたPATH
で実行されます。 php
バイナリへのフルパスを入力する必要がありますか?