ユーザーがログインしていない場合、cronジョブは実行されますか?

ユーザーがログインしていない場合、cronジョブは実行されますか?

毎日タスクを実行するようにcrontabを設定しました。

時には失敗し、同じディレクトリで永久に繰り返し/動作します。

翌日、crontabは同じディレクトリで同じスクリプトを実行します。

毎晩作業が完了すると予想されたが、今は一日以内に完了しなければ翌日作業と混ざることになる。

毎日のクローン操作(午後5時)の前に(毎日)再起動(午後4時など)をスケジュールします。再起動後、ユーザーがログインしなくてもクローンジョブは実行されますか?

#Note 問題は crontab ではなくスクリプト (およびスクリプトが実行するアクション) にあることは明らかです。

ベストアンサー1

はい、cronクローンジョブは、デーモンが実行されている限り、ユーザーのログインに関係なく、スケジュールどおりに実行されます。

クローンの仕事が期待どおりに仕事を遂行/完了しないと説明しました。これはcron、スクリプトが正しくトリガーされたため問題になる可能性はありませんが、シェルスクリプトの論理エラーである可能性があります。

スクリプトの出力をキャプチャして問題を解決できます。 1 つの方法は、スクリプトに詳細を stdout/stderr に出力させ、cron電子メール設定を構成することです。cron出力がキャプチャされ、あなたに送信されます。別のアプローチは、スクリプト内で直接ロギングを実行することです。ログファイルを作成し、すべてのコマンドのstdout / stderrをそのファイルにリダイレクトします。

特定の条件でのみエラーが発生した場合は、その条件のチェックをスクリプトに組み込むことができます。重要なコマンドの終了ステータスを確認し、適切な場合は失敗を報告できます。

最後に、再起動に関する注意事項です。システムがスケジュールされた時間に実行されていない場合、システムがcronオンラインになった後もジョブは実行されません。このような状況であれば、ぜひご確認ください。anacron

おすすめ記事