しばらくの間、Ubuntu 12.04 を実行しているマシンでカスタム Linux Kernel 3.2.1 を使用してきました。今日、cron タスクをスケジュールしたいと思っていたのですが、crontab の cron が実行されていないことに気付きました。
サービスは実行されcron
ているので、見逃したカーネル構成オプションに問題がある可能性があると思いますが、何が原因なのかわかりません。なにか提案を?
カスタムカーネルがそれほど大きな違いを生むとは思いません。多分...しかし、私が最初に見ることではありません。
まず、cronを実行しているユーザーがローカルメールを持っているかどうかを確認します(/ var / spool / mail /を確認してください)。エラーがある場合は、そこに記載されている場合があります。そうでない場合は、プログラムのstderrとstdoutをファイルにリダイレクトしてみてください。たとえば、cronに追加します。
SHELL = /bin/bash
PATH = /usr/bin/:/bin
* * * * * ls /tmp > $HOME/ls_tmp.log 2>&1
ubuntuのcronのデフォルトシェルはbashではなくshだと思うので、bash/shの問題を回避するためにbashに設定するのが好きです。また、パスについて明示的にするのも好きです(ローカルスクリプトの場合は、パスの先頭に〜/ binを追加します)。
ログ ファイルには、失敗の説明が含まれている必要があります。
cat /var/log/syslog | grep cron -C 1