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(4) ファイルにはロックされていないアカウントが定義されており、それらのアカウントのジョブとプロセスは実行されます。
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/sbin:/usr/bin を使用します。
cron のログファイルは、logadm(1M) によって定期的にローテーションされます。
主 cron ディレクトリ
ロックファイル
cron のデフォルト設定ファイル
cron の履歴情報
スプール領域
at、batch、および cron の待ち行列記述ファイル
logadm の構成ファイル
属性についての詳細は、マニュアルページの attributes(5) を参照してください。
|
svcs(1)、at(1)、crontab(1)、sh(1)、logadm(1M)、svcadm(1M)、queuedefs(4)、shadow(4)、attributes(5)、rbac(5)、smf(5)、smf_security(5)
cron サービスは、サービス管理機能 smf(5) によって、次のサービス識別子で管理されます。
svc:/system/cron:default
有効化、無効化、または再起動要求など、このサービスに関する管理操作は、svcadm(1M) を使用して実行できます。サービスステータスを照会するには、svcs(1) コマンドを使用します。ほとんどの管理アクションは、solaris.smf.manage.cron 承認を持つユーザーに委任できます (rbac(5) および smf_security(5) を参照)。
cron によって行われたすべての操作の履歴は、/var/cron/log および場合によっては /var/cron/olog に格納されます。