Centos7 の起動プロセスと Systemd での Nginx の起動構成

Centos7 の起動プロセスと Systemd での Nginx の起動構成

Centos7 の起動プロセス:

1.post(電源投入時のセルフテスト) 電源投入時のセルフテスト

1 主な機能は、各周辺ハードウェアデバイスが存在し、正常に動作できるかどうかを検出することです。マザーボード上のROM(主にCMOSで表されます)チップ上に固定されたBIOS(Basic Input/Output System)プログラムがこのセルフテスト機能を実現します。たとえば、BIOSはCPU、メモリ、I/Oデバイスが正常に動作できるかどうかを検出します。パソコンの場合は、ディスプレイも検出することがあります。電源を入れるとすぐに、CPU は ROM チップ上の BIOS プログラムを自動的にロードします。これが実現される仕組みです。検出が完了すると、ハードウェア デバイスが初期化されます。

2. bootsequence (BIOS、ブートデバイスの選択)

1 主な機能は、起動するハードウェアデバイスを選択することです。選択後、このデバイスの MBR にあるブートローダーを読み取ることができます。このステップは次のように実装されます。BIOS のブート順序設定に従って、BIOS は各ブート デバイスを順番にスキャンし、ブート ローダーでスキャンされた最初のデバイスが起動するブート デバイスとして使用されます。

3.ブートローダー(MBR)

このステップには実装するステップが多数あります。以前の BIOS はブート デバイスの MBR 内のブートローダーを読み取って実行し、ブートローダーの機能はユーザーにメニューを提供することです。
ユーザーが起動するシステムまたは異なるカーネル バージョンを選択できるようにし、ユーザーが選択したカーネル バージョンを RAM 内の特定の領域にロードし、RAM 内で解凍して展開し、システム制御をカーネルに転送します。

Grub はブートローダの一種です。ブートローダの保存に MBR の 446 バイトしか使用できないという制限を打破するために、このステップは次のように実装されます。Grub はカーネルをロードする機能を、ステージ 1、ステージ 1.5、ステージ 2 の 3 つのステージに分けて実装します。で:

stage1: MBR の最初の 446 バイトに格納され、stage2 (または /boot) が配置されているパーティションのファイル システムを識別して駆動するために、stage1.5 をロードするために使用されます。

stage1.5: MBR の後のセクターに格納され、stage2 が配置されているパーティションのファイル システム ドライバーをロードします。これにより、stage1 のブートローダーは stage2 が配置されているパーティションのファイル システムを認識できます。

stage2: ディスク パーティション、具体的には /boot/grub ディレクトリに保存され、主にカーネル ファイル (vmlinuz-VERSION-RELEASE) と一時ルート ファイル システム RAM ディスク (initrd-VERSION-RELEASE.img または initramfs-VERSION-RELEASE.img) を読み込むために使用されます。

概要: 起動するデバイスがハードディスクの場合、まずハードウェア プラットフォームのマザーボード BIOS がハードディスクを認識できなければならず、その後 BIOS はハードディスク内のブートローダをロードできます。ブートローダ自体がロードされると、現在のホスト上のハードディスク デバイスを直接認識できます。ただし、ハードディスク デバイスを認識できることは、ハードディスク デバイス内のファイル システムを認識できることを意味しません。ファイル システムはソフトウェアで編成されたファイル構造の追加レイヤーであるため、ファイル システムに接続するには、このファイル システムを認識して理解できる対応するドライバーが必要であり、このドライバーはファイル システム ドライバーと呼ばれます。 Stage1.5 は grub にファイル システム ドライバーを提供するため、stage1 は stage2 とカーネルが配置されているパーティション (/boot) にアクセスできます。
注: kernel と initramfs のファイル パスは両方とも、grub の「ルート」を開始ディレクトリとして使用し、stage2 が配置されているパーティションに保存されます。

GRUB は LVM や高度なソフト RAID などの複雑な論理デバイスを駆動できないため、ステージ 2、カーネル、および RAM ディスク ファイルは通常、基本ディスク パーティションに配置されることに注意してください。複雑なドライバー インターフェイスが提供されない限り、ステージ 2 およびカーネル ファイルが LVM などの複雑な論理デバイスに保存されている場合、それらはステージ 1 によって認識されず、ロードされることもありません。

4. カーネルの初期化

Kerenl がシステムの制御を取得したら、まず自分自身を初期化する必要があります。初期化の主な機能は次のとおりです。

(1)識別可能なすべてのハードウェアデバイスを検出する。

ブートローダーは、後の王朝が前の王朝を倒すのと同じように、システム制御をカーネルに移します。支配者 (カーネル) が権力を握った後、最初に行うことは、領土、人力、財源、軍事力など、前の王朝から何が残っているかを確認することです。

(2)ハードウェアドライバをロードする。つまり、実際のルートファイルシステムが配置されているデバイスのドライバをロードする(ramdiskの助けを借りてロードされることもある)。

これは、支配者(核)が、自分の下にいる人的資源や財政的資源について知った後、自分の目的に利用できる人々を自分の指揮下に置き、自分の命令に従わない人々を殺し始めるようなものです。

(3)ルートファイルシステムを読み取り専用モードでマウントする。

ramdisk などの一時ファイル システム (仮想ルート) が使用されている場合は、この手順の後にルート スイッチが実行されます。それ以外の場合は、ルート スイッチは実行されません。

(4)ユーザー空間で最初のアプリケーションであるsystemdを実行します。

この時点でカーネル空間の起動プロセスは終了し、次のステップはユーザー空間が後続のシステム起動プロセスを完了することです。

5. initはユーザー空間のサービスプロセスを管理する

Systemdはデフォルトのターゲット設定、設定ファイル/etc/systemd/system/default.targetを実行します。
systemdは、システムを初期化するためにsysinit.targetを実行し、オペレーティングシステムを準備するためにbasic.targetを実行します。systemdは、multi-user.targetの下でローカルサービスとサーバーサービスを開始します。systemdは、multi-user.targetの下で/etc/rc.d/rc.localを実行します。
Systemdはgetty.targetとmulti-user.target下のログインサービスを実行します。Systemdはグラフィカルユーザーインターフェイスに必要なサービスを実行します。

起動時にnginxプロセスを起動するためにNginxのsystemd設定ファイルを記述する

vim /lib/systemd/system/nginx.service
 [ユニット]
 説明=nginx サーバー
 後=ネットワーク.ターゲット
 
 [サービス]
 タイプ=フォーク
 実行開始=/usr/sbin/nginx
 
 [インストール]
 WantedBy=マルチユーザー.ターゲット

[root@localhost ~]#systemctl nginx.service を有効にする

要約する

上記は、編集者が紹介したSystemdでのCentos7の起動プロセスとNginxの起動構成です。皆様のお役に立てれば幸いです。ご質問がある場合は、メッセージを残してください。編集者がすぐに返信します。また、123WORDPRESS.COM ウェブサイトをサポートしてくださっている皆様にも感謝申し上げます。
この記事が役に立ったと思われた方は、ぜひ転載していただき、出典を明記してください。ありがとうございます!

以下もご興味があるかもしれません:
  • systemd を使用して Golang プロジェクトをデプロイする方法
  • CentOS7 systemdにカスタムシステムサービスを追加する方法
  • Centos7 の systemd の詳細な分析
  • systemdにカスタムシステムサービスを追加し、カスタムスタートアップを設定する方法
  • Docker デプロイメント nginx 実装プロセスのグラフィックとテキストによる詳細な説明
  • Nginx アクセス ログとエラー ログ パラメータの説明
  • Nginx 502 Bad Gateway エラーの原因と解決策
  • Nginx サーバーが Systemd カスタム サービス プロセス分析を追加

<<:  mysql5.7 ユーザー権限の作成、ユーザーの削除、権限の取り消し

>>:  Vue における nextTick の役割といくつかの簡単な使用シナリオ

推薦する

Windows2008 64 ビット システムでの MySQL 5.7 グリーン バージョンのインストール チュートリアル

序文この記事では、MySQL 5.7 グリーン バージョンのインストール チュートリアルを紹介します...

MySQLキーワードDistinctの詳細な紹介

MySQLキーワードDistinctの使い方の紹介DDL SQLを準備します: テーブルテストを作成...

Vueは携帯電話のカメラとアルバムを呼び出す機能を実装します

この記事では、携帯電話のカメラとアルバムにアクセスするためのVueの具体的なコードを参考までに共有し...

node_modulesを削除して再インストールする方法

目次ステップ1: プロジェクトをインストールするディレクトリにnode_modulesをインストール...

JavaScript で localStorage を使用する方法

.NET の世界に参入したい開発者であれば、何が可能なのかを知る必要があります。 .NET Fram...

CSSの高さの崩壊問題についての簡単な説明

パフォーマンス例えば: HTML: <div class="first"&...

建国記念日が近づいています。JS を使用して、建国記念日風のアバターを生成する小さなツールを実装します。実装プロセスの詳細な説明

目次1. ページレイアウト2. 画像のアップロードと表示3. キャンバスを初期化する4. テンプレー...

MySQL シリーズ 13 MySQL レプリケーション

目次1. MySQLレプリケーション関連の概念2. シンプルな1マスター1スレーブアーキテクチャの実...

CentOS で Mysql を再起動するさまざまな方法 (推奨)

1. rpm パッケージ経由でインストールされた MySQL サービスmysqldを再起動 /et...

Ubuntu にグラフィック ドライバーが正常にインストールされたかどうかを確認する方法

次のコマンドを実行します: glxinfo | grep レンダリング結果が「はい」の場合、グラフィ...

CSS の border 属性と display 属性の使い方の簡単な分析

境界プロパティの概要borderプロパティは要素の境界を設定します。境界線の3要素は、太さ、線の種類...

MySQL 8.0.18 のインストールと設定方法のグラフィックチュートリアル (Windows 10 版)

この記事は、参考のためにMySQL 8.0.18のインストールと設定のグラフィックチュートリアルを記...

Linux での MySQL 5.6.27 インストール チュートリアル

この記事では、LinuxでのMySQL 5.6.27のインストールチュートリアルを参考までに紹介しま...

ウェブページを作るときに注意すべき5つのポイント

1. 色合わせの問題<br />Web ページには 3 色以上使用しないでください。そう...

MySQL マスタースレーブ同期遅延の原因と解決策

歴史的な理由により、MySQL レプリケーションは、REDO ログではなく論理バイナリ ログに基づい...