Crontab @reboot — 起動時に1回実行

@rebootディレクティブを使用してcronデーモン起動時(通常はシステム起動時)にコマンドを1回実行。時間ベースのスケジュールではありません。

Special Strings@reboot

詳細な説明

crontabで@rebootを使用する

@reboot ディレクティブはcronデーモンの起動時に1回コマンドを実行する特別なcron文字列です。これは通常システム起動に対応しますが、cronサービスが再起動された場合にもトリガーされます。

構文

@reboot /path/to/script.sh

@reboot に相当する5フィールド式はありません — これは固有のディレクティブです。

動作の仕組み

cronデーモンが初期化されると(通常は起動時)、すべてのcrontabファイルをスキャンして @reboot エントリを見つけ、1回実行します。その後、次の再起動までこれらのエントリはトリガーされません。

重要な考慮事項

  1. すべてのcron実装が@rebootをサポートしているわけではありません。 Vixie cron(Linuxで最も一般的)では動作しますが、すべてのUnixシステムで利用できるとは限りません。

  2. 環境の違い: 起動時のシステム環境は通常のログインセッションとは異なる場合があります。遅延の追加を検討してください:

@reboot sleep 30 && /scripts/start-app.sh
  1. サービスマネージャー: 本番アプリケーションではsystemd、Supervisor、Dockerの使用を検討してください。

ユースケース

systemdユニットファイルを持たないバックグラウンドサービスの起動、screen/tmuxセッションの起動、開発環境の初期化、監視エージェントの起動、リブート後のワンタイムセットアップスクリプトの実行に@rebootを使用します。

試してみる — Crontab Cheat Sheet

フルツールを開く