web-dev-qa-db-ja.com

cronがコマンドの処理を停止したのはなぜですか?

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 

この状況を診断するにはどうすればよいですか?

1
Marinaio

/ var/cron/logを確認しましたか?アカウントがロックされているか、cron.denyに追加されている可能性がありますか?
/var/pool/cron/crontabsに対応する.auファイルはありますか?歴史的に、そのファイルはジョブを実行するために必要でした。 crontab -eによって作成されるため、通常、cronファイルが新しいサーバーにコピーされた場合にのみ欠落します。呼び出されているスクリプト/バイナリで問題が発生する可能性はありますか?

Cronデーモンは通常、動作するのを待つ間スリープしています。

V11.3を使用している場合は、ニーズにより役立つ場合は、 スケジュールされたサービス の使用を検討することもできますか?

1
sleepyweasel

解決しました!!!

/ 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は現在再び実行されています。

ありがとう

0
Marinaio