ブートプロセスとsystemd
Linux起動の流れ
電源ON
↓
BIOS/UEFI
↓
ブートローダが起動
↓
カーネル起動
↓
initramfsの実行
↓
init/systemdの起動
↓
ログイン画面
BIOS
:ハードウェアに一番近いファームウェアの一種。
UEFI
:BIOSを改良したファームウェア。(最近のシステムで使われている)
BIOS/UEFIはハードウェアの初期化やチェック、HDDやSSD等を選択して、そこに格納されているブートローダを起動する。
ブートローダ
:カーネルを選択して起動するプログラム
多くのディストリビーションではブートローダとしてGRUB
を使用する
GRUB
:古い
GRUB2
:新しいGRUB (最近のシステムで使われている)
カーネル
:CPU、メモリ、ストレージなどのリソースを制御する
カーネルが起動されるとinitramfs
を起動する
initramfs
:ルートファイルシステムをルートディレクトリにマウントする
initramfsがルートシステムをマウントすると、カーネルはルートファイルシステムに入っているsystemd
を読み込み起動する。
systemd
:システム起動時に最初に生成されるプロセスで、デーモンとしてメモリに常駐し、システム全体を統括する。PID(プロセスID)が必ず1
となる。
(centos6以前では、init
だった)
systemdはシステム稼働に必要な子プロセスを順位に生成していき、システムを初期化する。
設定ファイルにしたがってシステムの初期化とサービスの起動を行う。
systemdの設定ファイルはユニット
と呼ばれ、12タイプ
ある。
主なユニットタイプ
service
ユニットはサービスの起動と停止に関する設定が記述されている。
target
はユニットをグループ化したもので、システムの起動状態を制御する設定。
systemdはdefault.target
の設定に従ってシステムを起動する。
default.target
はgraphical.target
or multi-user.target
へのシンボリックリンクになっている。
graphical.target
:システムがGUIモードで起動
multi-user.target
:システムがCUIモードで起動
rescue.target
:rootユーザのみが利用可能、システムメンテナンス時に利用。
systemdを管理するにはsystemctl
コマンドを使う
# アクティブなサービスを表示
systemctl
# インアクティブも含め全てのサービスを表示
systemctl -a
# デフォルトターゲットを確認する
systemctl get-default
# デフォルトターゲットを変更する
systemctl set-dafault multi-user.target
# 稼働中のターゲットをすぐに反映させる
systemctl isolate grahical.target
# シングルユーザーモードにする
systemctl isolate rescue
※シングルユーザーモード:システムメンス時などに一般ユーザーのログインを排除するモード
サービス制御
「サービス名.service」の設定に従って各種サービスを起動する
.serviceは省略可能
# 現在のステータスを確認
systemctl status http.service
# サービスを自動起動する設定
systemctl enable http
# サービスを自動起動すしない設定
systemctl disable http
# サービスの自動起動状態を確認
systemctl is-enabled http
# サービスを起動する
systemctl start http
# サービスを停止する
systemctl stop http
# サービスを再起動する
systemctl restart http
システムの停止・再起動
shutdown
コマンド:時刻を指定してシステムの停止・再起動を行う。
# システムをすぐに停止する
shutdown -h now
# システムを5分後に再起動する
shutdown -r 5
# システムを10:30に再起動する
shutdown -r 10:30
# 取り消しする
shutdown -c
その他の停止・再起動コマンド
# 停止
poweroff
systemctl poweroff
# 再起動
reboot
systemctl reboot
Author And Source
この問題について(ブートプロセスとsystemd), 我々は、より多くの情報をここで見つけました https://zenn.dev/kajuma/articles/935333b71f6285著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Collection and Share based on the CC protocol