Solaris 11cronが機能しなくなったようです。
これが私が実行したcronジョブの最後の出力です:
-rw-r--r-- 1 root root 60 Jul 2 20:30 locked_passwords.txt
次のようにテストを設定します。
* * * * * touch /tmp/testing.txt
ファイルに触れることはありません
サービスが実行されているかどうかを確認しました。
svcs cron
STATE STIME FMRI
online Mar_09 svc:/system/cron:default
ファイルをトラスして、これを確認します。
root 532 1 0 Mar 09 ? 3:08 /usr/sbin/cron
pfexec truss -f -p 532
532: pollsys(0xFC7FC1A8, 1, 0xFC7FC750, 0x00030414) (sleeping...)
私のcronプロセスはスリープしていますか?どうして?
更新:cronを2回再起動しましたが、停止し続けます。私のログの大部分は次のようになっています。
! c queue max run limit reached Mon Jul 24 12:53:00 2017
! rescheduling a cron job Mon Jul 24 12:53:00 2017
! c queue max run limit reached Mon Jul 24 12:53:00 2017
! rescheduling a cron job Mon Jul 24 12:53:00 2017
! c queue max run limit reached Mon Jul 24 12:53:00 2017
! rescheduling a cron job Mon Jul 24 12:53:00 2017
この状況を診断するにはどうすればよいですか?
/ var/cron/logを確認しましたか?アカウントがロックされているか、cron.denyに追加されている可能性がありますか?
/var/pool/cron/crontabsに対応する.auファイルはありますか?歴史的に、そのファイルはジョブを実行するために必要でした。 crontab -e
によって作成されるため、通常、cronファイルが新しいサーバーにコピーされた場合にのみ欠落します。呼び出されているスクリプト/バイナリで問題が発生する可能性はありますか?
Cronデーモンは通常、動作するのを待つ間スリープしています。
V11.3を使用している場合は、ニーズにより役立つ場合は、 スケジュールされたサービス の使用を検討することもできますか?
解決しました!!!
/ var/cron/logは私の問題を解決しませんでしたが、それは私を正しい方向に向けました。ログで私はたくさん見ました
! cキューの最大実行制限が2010年5月27日木曜日15:45:01に達しました[[キュー "c"はcron用です]]
/etc/cron.d/queuedefsは他のすべてのサーバーと同じだったので、それは問題ではありませんでした。
これが私がしたことです。 ps -ef | grep cron ptree <PID> pgrep -f '/export/script.sh' # verify the listing before proceeding pkill -9 -f '/export/script.sh' ** Now cron is running again **
何百ものscript.shが積み重なっているのを見ました。
script.shはデータベースに接続し、そのスクリプトに加えられた変更のトラブルシューティングを行っています。ただし、cronは現在再び実行されています。
ありがとう