cron - クロックデーモン
/usr/sbin/cron
cron は、指定された日時にコマンドを実行するプロセスを開始します。
/var/spool/cron/crontabs ディレクトリの crontab ファイルにある指示に従って、定期的にスケジュールされたコマンドを cron に指定できます。ユーザーは、crontab(1) コマンドを使用すると、独自の crontab ファイルを送信できます。一度だけ実行するコマンドは、at(1) コマンドを使用して投入できます。
cron は、それ自体のプロセス初期化フェーズの際、および crontab または at コマンドが実行されるときにのみ、crontab または at コマンドファイルを検査します。これにより、定期的にスケジュールされた間隔で新しいファイルまたは変更されたファイルをチェックするオーバーヘッドが減少します。
cron は終了することがないため、一度だけ実行してください。これは、通常の手順では svc:/system/cron:default サービスによって実行されているものです。複数の cron インスタンスが実行されないように、ロックファイルとして /etc/cron.d/FIFO ファイルが使用されます。
cron は、ジョブの stdout および stderr ストリームの出力を取得し、空でない場合は、出力をユーザーにメールで送信します。ジョブが出力を生成しなかった場合、ユーザーにメールは送信されません。1 つの例外として、ジョブが at(1) ジョブであり、そのジョブが送信されたときに –m オプションが指定された場合です。
ユーザーのアカウントがロックされているか、期限切れになっていると、cron ジョブおよび at ジョブは実行されません。shadow(5) を参照して、ロックされておらず、期限切れになっていないアカウントを特定してください。
cron デーモンのタイムゾーンは、cron エントリのシステム全体のタイムゾーンとして設定されます。また、さらに /etc/default/init を使用してシステム全体のデフォルトタイムゾーンとして設定されます。cron エントリのタイムゾーンは、ユーザーの crontab ファイルでオーバーライドできます。crontab(1) を参照してください。
夏時間や冬時間などが有効になっている場合には、切り替え期間に予定されているジョブは、1 回だけ実行されたり、2 回実行されたり、またはまったく実行されないこともあります。
cron によって実行されるすべての操作のログを保存するには、/etc/default/cron ファイルで CRONLOG=YES を指定する必要があります。CRONLOG=NO を指定すると、ログの記録は行われません。通常、cron は非常に大きなログファイルを作成するため、ログの保存はユーザーが構成可能なオプションとなっています。
ユーザーの cron ジョブの PATH を設定するには、/etc/default/cron に PATH= を指定します。root ユーザーの cron ジョブの PATH を設定するには、/etc/default/cron に SUPATH = を指定します。PATH および SUPATH を設定した場合のセキュリティーへの影響を十分に考慮してください。
/etc/default/cron ファイルの例
CRONLOG=YES PATH=/usr/bin
この例では、ロギングを有効にし、root 以外のジョブによって使用されるデフォルトの PATH を /usr/bin に設定します。root ユーザーのジョブは、引き続き /usr/bin を使用します。
cron のログファイルは、logadm(8) によって定期的にローテーションされます。
主 cron ディレクトリ
ロックファイル
cron のデフォルト設定ファイル
cron の履歴情報
スプール領域
at、batch、および cron の待ち行列記述ファイル
logadm の構成ファイル
属性についての詳細は、マニュアルページの attributes(7) を参照してください。
|
at(1)、crontab(1)、sh(1)、svcs(1)、queuedefs(5)、shadow(5)、attributes(7)、rbac(7)、smf(7)、smf_security(7)、logadm(8)、svcadm(8)
cron ジョブは、制御端末がない個別のプロセスグループ内で実行されているシェルを個別に呼び出すと実行されます。呼び出し元の環境から継承された、開いているファイル記述子、トラップ、および優先順位は失われます。
cron サービスは、サービス管理機能 smf(7) によって、次のサービス識別子で管理されます。
svc:/system/cron:default
再起動の有効化、無効化、要求などのこのサービスでの管理アクションは、svcadm(8) を使用して実行できます。サービスステータスを照会するには、svcs(1) コマンドを使用します。ほとんどの管理アクションは、solaris.smf.manage.cron 承認を持つユーザーに委任できます (rbac(7) および smf_security(7) を参照)。
cron によって行われたすべての操作の履歴は、/var/cron/log および場合によっては /var/cron/olog に格納されます。