サーバーのプロビジョニングを行っています。インストール後にスクリプトを実行する必要があります。システムを完全に機能させ、サービスを含める必要があるためです。だから私はそれを%post
キックスタートファイルのセクション。
代わりに、自分自身を最後に無効にするsystemdサービスを作成しました。
[Unit]
Description=Prepare the system after installation
[Service]
Type=oneshot
ExecStart=/usr/bin/prepare-system
[Install]
WantedBy=multi-user.target
問題は、初回起動時にログインプロンプトが表示され、「初回起動スクリプト」がまだ実行されているときにログインしてシステムの使用を開始できることです。
これにより、システムをセットアップする管理者は、システムが実際には終了していない場合でも、システムが終了したように見えます。
代わりに、サービスに起動を遅らせて、できれば「システムを準備しています。しばらくお待ちください...」のようなメッセージを表示し、スクリプトが終了するまでそこを待ちます。
ターミナルが利用可能な場合は、Before
をに設定するだけです。
[Unit]
Description=Prepare the system after installation
[email protected] [email protected] [email protected] [email protected] [email protected] [email protected]
[Service]
Type=oneshot
ExecStart=/usr/bin/prepare-system
[Install]
WantedBy=multi-user.target
ログインマネージャーとしてGDMを使用していると想定して、Before=gdm.service
の中に [Unit]
セクション。
Gdmを使用しない場合は、xorgを起動するサービスを見つけて、Before=
行。
これにより、ログインマネージャーが表示される前にタスクが完了します。