本記事には広告(アフィリエイトリンク)が含まれます。

Linuxの起動・接続・停止 LinuC101新卒第1回

広告

新卒インフラエンジニア向けLinuC 101 試験対策シリーズの第1回です。

サーバーの前に座ったあなたが最初に必要になるのは、「入って・確認して・出て・止める」という基本動作です。本記事では、AlmaLinux 9.6の検証VMを使って、ログイン・接続確認・ログアウト・シャットダウンの流れを実機で体験します。

環境前提

  • ディストリビューション: AlmaLinux 9.6(Sage Margay)
  • カーネル: 5.14.0-570 系
  • ユーザー: developer(sudo NOPASSWD設定済み)
  • 検証環境: Hyper-V on Windows 11
  • 関連VM: linuc-alma(10.0.10.132)
  • ホストPC: External Switch(192.168.1.0/24)から SSH接続
広告

今ここマップ

LinuC 101 試験対策シリーズ(全12回)

▶ 第1回 Linuxの起動・接続・停止          ← いまここ
  第2回 ブートプロセスの仕組み
  第3回 systemdマスター講座
  第4回 プロセス管理とハードウェア基礎
  第5回 仮想マシンとコンテナの基礎
  第6回 パッケージ管理マスター
  第7回 ファイル操作の実践
  第8回 パーミッション・所有者・特殊権限
  第9回 コマンドライン・リダイレクト・パイプ
  第10回 テキスト処理(grep / sed / awk)
  第11回 vi/vim 入門
  第12回 ディスク・パーティション・ファイルシステム

この記事で身につくこと

  1. Hyper-Vコンソールから AlmaLinux にログインできる
  2. SSHで linuc-alma に接続・切断できる
  3. ログイン状況を who w last で把握できる
  4. shutdown reboot systemctl でシステムを安全に停止・再起動できる
  5. systemd ターゲット(旧ランレベル)の概念を理解し、確認・切替ができる

なぜ「ログイン」と「停止」を最初に学ぶのか

サーバーは「動いてあたりまえ」「止まったら大事件」が前提の領域です。新卒エンジニアが現場で最初に求められるのは、難しいシェルスクリプトを書くことではなく、ログインしてサーバーの状態を見て、必要なら安全に止める/再起動する、という地味で確実な操作です。

そして、ここを雑に覚えると現場で本当に痛い目を見ます。本番サーバーで間違えて shutdown -h now を打って深夜に呼び出されるエンジニアは、毎年どこかにいるのです。だからこそ、最初の1回で仕組みから順を追って理解してください。

第1章:Linuxへのログイン

1.1 ログインとは何をしているのか

「ログイン」とは、システムに対して「自分が誰か」を証明し、その人の権限でシェル(コマンド入力受付)を起動してもらう行為です。Linuxには大きく分けて2つの入口があります。

  • コンソールログイン:物理キーボード/Hyper-Vなどの仮想コンソールから直接操作
  • リモートログイン:ネットワーク経由でSSH接続して操作

現場の運用では、ほぼすべての作業がリモートのSSH経由です。コンソールはネットワーク障害でSSH接続できなくなったときのフォールバック経路として残しておく、という棲み分けになります。

1.2 Hyper-Vコンソールでのログイン

Hyper-Vマネージャーから linuc-alma を選び、「接続」をクリックすると黒い画面に linuc-alma login: のプロンプトが現れます。

コンソール画面表示例:

AlmaLinux 9.6 (Sage Margay)
Kernel 5.14.0-570.12.1.el9_6.x86_64 on an x86_64

linuc-alma login: developer
Password: ********
Last login: Sat May  9 19:16:32 from 192.168.1.100
[developer@linuc-alma ~]$

このプロンプト [ユーザー名@ホスト名 カレントディレクトリ]$ が出れば、ログインに成功してシェルが立ち上がっています。$ は一般ユーザーシェルのプロンプト記号です(rootは #)。

ログイン直後にシステムの素性を確認しておいてください。

実行コマンド:

$ hostnamectl

実行結果:

 Static hostname: linuc-alma
       Icon name: computer-vm
         Chassis: vm 🖴
      Machine ID: 9675dfbf54f14d9ebfa704b59841fc8f
         Boot ID: 44ba742031594ff8a3b3facbf1a6ee39
  Virtualization: microsoft
Operating System: AlmaLinux 9.6 (Sage Margay)
     CPE OS Name: cpe:/o:almalinux:almalinux:9::baseos
          Kernel: Linux 5.14.0-570.12.1.el9_6.x86_64
    Architecture: x86-64
 Hardware Vendor: Microsoft Corporation
  Hardware Model: Virtual Machine
Firmware Version: Hyper-V UEFI Release v4.1

ホスト名・OS・カーネル・仮想化基盤が一目で分かります。「自分は今どこに入っているのか」を確認する習慣を身につけてください。複数のサーバーを行き来する現場では、これを怠ると致命的なミスにつながります。

1.3 SSHでのリモートログイン

SSH(Secure Shell)は、暗号化された通信路を使って遠隔のLinuxにログインする標準プロトコルです。事前にSSH鍵認証を設定しておけば、パスワードなしで安全にログインできます。

ホストPCのターミナル(PowerShellでもGit Bashでも可)で実行:

実行コマンド(ホストPCで実行):

PS> ssh developer@192.168.1.132

実行結果:

Last login: Sat May  9 19:16:32 2026 from 192.168.1.100
[developer@linuc-alma ~]$

SSHが使うポートは標準で 22/tcp。OpenSSHが現代のLinuxサーバーで使われるSSH実装の事実上の標準で、AlmaLinux 9.6に同梱されているのは OpenSSH 8.7p1 です。

実行コマンド:

$ ssh -V

実行結果:

OpenSSH_8.7p1, OpenSSL 3.5.1 1 Jul 2025

SSH鍵認証の詳しい仕組みは第10回(暗号化によるデータ保護)で扱います。今回はまず「リモートからログインできた」という体験が大事です。

📖 試験Tipsボックス:ログイン関連

主題:1.01.1 Linuxのインストール、起動、接続、切断と停止(重要度:中)
出題パターン:「ログインプロンプトを表示する仕組みは?」「SSH接続のデフォルトポート番号は?」

暗記ポイント

  • コンソールのログインプロンプトは getty 系プロセスが提供する
  • SSHのデフォルトポートは 22/tcp
  • ログイン直後に読まれる主なファイル:/etc/profile~/.bash_profile~/.bashrc

第2章:ログイン状態を把握する

サーバーに入ったら、「他に誰が入っているか」「いつから動いているか」を必ず確認してください。共用の検証サーバーを再起動する前にログイン中のユーザーがいれば、必ず一声かけるべきです。

2.1 who — 今ログインしている人

実行コマンド:

$ who

実行結果(誰もログインしていない場合は空):

developer pts/0        2026-05-09 19:50 (192.168.1.100)

左から「ユーザー名」「端末(pts/0 は擬似端末0番)」「ログイン日時」「接続元IP」です。tty1 はコンソール、pts/0 以降はSSH等のリモート接続です。

2.2 w — 誰が何をしているか

wwho よりリッチな情報を出してくれます。何のコマンドを実行しているかまで見えます。

実行コマンド:

$ w

実行結果:

 19:51:02 up 47 min,  1 user,  load average: 0.00, 0.01, 0.00
USER     TTY        LOGIN@   IDLE   JCPU   PCPU WHAT
develope pts/0     19:50    0.00s  0.05s  0.00s w

1行目に注目してください。uptime(起動からの経過時間)と load average(システム負荷)がさりげなく表示されます。「いつから動いているか」「今負荷が高くないか」が一目で分かる便利コマンドです。

なお、USER列は8文字幅で表示されるため、developer(9文字)は develope と切り詰められます。完全なユーザー名を確認するなら who を使ってください。

2.3 last — ログイン履歴

last は過去のログイン履歴と再起動履歴を遡って表示します。/var/log/wtmp が情報源です。

実行コマンド:

$ last -n 5

実行結果:

develope pts/0        192.168.1.100    Sat May  9 19:16 - 19:16  (00:00)
reboot   system boot  5.14.0-570.12.1. Sat May  9 19:04   still running
reboot   system boot  5.14.0-570.12.1. Sat May  9 18:53 - 19:03  (00:09)

wtmp は Sat May  9 18:53:54 2026 から始まっています

reboot system boot の行は、システムの再起動履歴を意味します。「いつ再起動されたか」「現在のセッションはいつから継続しているか」が分かる重要な記録です。

実行コマンド:

$ last reboot -n 3

実行結果:

reboot   system boot  5.14.0-570.12.1. Sat May  9 19:04   still running
reboot   system boot  5.14.0-570.12.1. Sat May  9 18:53 - 19:03  (00:09)

wtmp は Sat May  9 18:53:54 2026 から始まっています

第3章:ログアウトと切断

シェルを終了するには exit または logout、もしくは Ctrl + D(EOF送信)を使います。

実行コマンド:

$ exit

実行結果(SSHセッションの場合):

logout
Connection to 192.168.1.132 closed.
PS>

SSHセッションでは exit 後にホストPC側のシェルへ戻ります。「自分が今どのシェルにいるか」を見失わないことが大事です。SSH先のつもりで shutdown を打ったが、本当はホストPCで叩いていた…という事故も実際にあります。

プロンプトのホスト名[developer@linuc-alma ~]$linuc-alma 部分)を必ず目視で確認する習慣をつけてください。

第4章:システムの停止と再起動

「サーバーを止める」のは緊張する作業の代表格です。仕組みを理解し、用途に応じてコマンドを使い分けてください。

4.1 shutdown コマンドの基本

shutdown は AlmaLinux 9 では systemctl へのラッパーですが、伝統的なオプション体系が今も使えます。

実行コマンド:

$ shutdown --help

実行結果(抜粋):

shutdown [OPTIONS...] [TIME] [WALL...]

Options:
  -H --halt      Halt the machine
  -P --poweroff  Power-off the machine
  -r --reboot    Reboot the machine
  -h             Equivalent to --poweroff, overridden by --halt
  -k             Don't halt/power-off/reboot, just send warnings
     --no-wall   Don't send wall message before halt/power-off/reboot
  -c             Cancel a pending shutdown
     --show      Show pending shutdown

主要オプションの整理:

オプション意味用途
-h または -P電源オフサーバーを完全停止
-r再起動OS更新後の reboot 等
-Hhalt(停止)停止状態で電源は切らない(ハードウェア依存)
-k警告のみ「停止しますよ」のテスト通知。実際は停止しない
-cキャンセル予約済みのshutdownを取り消す
--no-wallwall抑制他ユーザーへの通知メッセージを送らない

4.2 時刻指定で予約停止する

本番環境のメンテナンスでは、即時停止ではなく事前通知をしてから止めるのが鉄則です。

30分後にシャットダウンする例(コマンドのみ紹介。実行はしないこと):

$ sudo shutdown -h +30 "メンテナンスのため30分後に停止します"

このコマンドを実行すると、ログイン中の全ユーザーの端末に「Broadcast message」が送信され、30分後に自動でpoweroffされます。気が変わったら、別ターミナルで以下を実行してキャンセル可能です。

$ sudo shutdown -c

時刻形式の指定方法:

  • +5 :5分後
  • 23:00 :今日の23時00分(過ぎていれば翌日)
  • now :即時(=+0

4.3 reboot / poweroff / halt

reboot poweroff halt は、それぞれ shutdown -r now shutdown -P now shutdown -H now 相当の即時実行コマンドです。事前通知は送られません

$ sudo reboot       # 即時再起動
$ sudo poweroff     # 即時電源オフ
$ sudo halt         # 即時halt(電源は切らない)

これらは AlmaLinux 9 では systemctl reboot systemctl poweroff systemctl halt と等価です。実体は systemd を経由した停止処理になります。

⚠️ ヒヤリハット:本番サーバーで shutdown を即実行

新人エンジニアA君は、検証環境で習った shutdown -h now を、本番DBサーバーで叩いてしまいました。事前通知なし、関係者への連絡なし、即停止。深夜帯にもかかわらず障害アラートが鳴り響き、復旧に2時間かかりました。

教訓:本番では絶対に now を使わない。最低でも shutdown -h +10 "メンテのため10分後停止" として、Slack等で事前にアナウンスすること。さらに、停止前に必ず wlast で他ユーザーの作業状況を確認してください。

📖 試験Tipsボックス:shutdownオプション

主題:1.01.1(重要度:中)
出題パターン:「shutdownを取り消すオプションは?」「警告のみ送信するオプションは?」

暗記ポイント

  • -h=poweroff(電源オフ)、-r=reboot、-H=halt
  • -k=警告のみ、-c=予約取消
  • 時刻指定は +分数 または HH:MM
  • shutdown は内部的に systemctl を呼ぶ

第5章:systemd ターゲット — ランレベルの今

5.1 ランレベルから systemd ターゲットへ

「ランレベル」という言葉を聞いたことがありますか? 古い SysV init の時代、Linuxには 0〜6 のランレベルという概念がありました。

旧ランレベル意味systemd ターゲット
0停止(halt)poweroff.target
1, Sシングルユーザーrescue.target
3マルチユーザー(CUI)multi-user.target
5マルチユーザー(GUI)graphical.target
6再起動reboot.target
緊急モードemergency.target

AlmaLinux 9 を含む現代のディストリビューションでは、SysV init は systemd に置き換わりました。systemd では「ランレベル」の概念が「ターゲット(target unit)」に進化しています。サーバー用途のデフォルトは multi-user.target(旧ランレベル3相当)です。

5.2 現在のターゲットを確認する

実行コマンド:

$ systemctl get-default

実行結果:

multi-user.target

互換コマンドで旧ランレベル風にも見られます。

実行コマンド:

$ runlevel
$ who -r

実行結果:

N 3
         run-level 3  2026-05-09 19:04

N 3N は「前のランレベルなし(=起動時から3)」、3 は現在のランレベル番号です。multi-user.target がランレベル3 に相当することが分かります。

5.3 アクティブなターゲットの一覧

実行コマンド:

$ systemctl list-units --type=target --state=active

実行結果(抜粋):

UNIT                   LOAD   ACTIVE SUB    DESCRIPTION
basic.target           loaded active active Basic System
getty.target           loaded active active Login Prompts
multi-user.target      loaded active active Multi-User System
network-online.target  loaded active active Network is Online
network.target         loaded active active Network
remote-fs.target       loaded active active Remote File Systems
sysinit.target         loaded active active System Initialization
timers.target          loaded active active Timer Units
...
20 loaded units listed.

ターゲットは「複数のユニットをまとめた到達点」と理解してください。multi-user.target は、ネットワーク・ログインプロンプト・各種サービスといったユニット群が起動した状態を意味します。

5.4 ターゲットの切り替え(systemctl isolate)

稼働中のターゲットを切り替えるには systemctl isolate を使います。たとえば緊急時のみ rescue.target へ移ることで、最低限のサービスだけが動く状態にできます(ネットワーク含めほぼ全停止する)。

$ sudo systemctl isolate rescue.target       # レスキューモードへ移行
$ sudo systemctl isolate multi-user.target   # 通常運用へ戻す

本記事では実機操作はせず、コマンド形のみ紹介します。リモートで実行するとSSH切断されてしまうため、コンソールから実行するのが原則です。

5.5 systemctl による停止系コマンド

systemctl 経由でも停止・再起動を実行できます。shutdown も内部的にはこれを呼び出しています。

$ sudo systemctl poweroff   # 電源オフ(=shutdown -h now)
$ sudo systemctl reboot     # 再起動(=shutdown -r now)
$ sudo systemctl halt       # halt(=shutdown -H now)
$ sudo systemctl rescue     # レスキューターゲットへ
$ sudo systemctl emergency  # 緊急ターゲットへ

システム全体の状態は systemctl is-system-running で確認できます。

実行コマンド:

$ systemctl is-system-running

実行結果:

running

running(正常)以外に degraded(一部失敗ユニットあり)、maintenance(緊急モード)、starting(起動中)といった状態があります。朝一番にこのコマンドで「サーバーが健全に動いているか」を確認するのは、現場のあるある運用です。

📖 試験Tipsボックス:systemd ターゲット

主題:1.01.1(重要度:中)
出題パターン:「ランレベル3 に相当する systemd ターゲットは?」「現在のターゲットを確認するコマンドは?」

暗記ポイント

  • ランレベル0=poweroff、1=rescue、3=multi-user、5=graphical、6=reboot
  • 既定確認:systemctl get-default / 既定変更:systemctl set-default <target>
  • 切替:systemctl isolate <target>
  • 互換コマンド:runlevelwho -r

現場での使いどころ

  • 朝の死活確認uptime systemctl is-system-running last reboot -n 5 をワンセットで確認。前日からの稼働継続性をチェック
  • メンテナンス前の参加者把握w で他ユーザーの作業状況確認 → 一声かけてから shutdown -h +30 で予告停止
  • 監視からの障害連絡対応last reboot で予期せぬ再起動の有無を即確認
  • クラウド/オンプレ問わず通用するスキル:AWSのEC2、Azure VM、オンプレ物理いずれでもこの操作は基本
  • リモートワーク前提の運用:物理的にデータセンターに行けない以上、SSH 接続が事実上の唯一の経路。SSH切断時のレスキューモード手順は緊急時の必須知識

やってみよう

検証環境(linuc-alma)で以下を順番に実行し、出力を観察してください。本番に近い感覚で「自分は今どこのサーバーにいるか」を意識しながら進めてください。

演習1:SSHでログインして自分のいる場所を確認

  1. ホストPCのターミナルから ssh developer@192.168.1.132 で接続
  2. プロンプトが [developer@linuc-alma ~]$ に変わったことを目視確認
  3. hostnamectlwhoamipwd を順番に実行し、自分の場所と権限を確認

演習2:ログイン状況の把握

  1. who で現在のログインユーザーを確認
  2. w でload averageと各ユーザーの作業内容を確認
  3. last -n 10 で過去10件のログイン履歴を確認
  4. last reboot -n 3 で再起動履歴を確認

演習3:systemd ターゲットの確認

  1. systemctl get-default で既定ターゲットを確認
  2. systemctl is-system-running でシステム健全性を確認
  3. runlevelwho -r でランレベル互換情報を確認
  4. systemctl list-units --type=target --state=active でアクティブなターゲット一覧を確認

演習4:shutdown の予約と取消(実害なしの練習)

  1. sudo shutdown -k +5 "テスト通知です" を実行(-k なので警告のみ)
  2. 別ターミナルからもう一度SSHで入り、broadcast messageを観察
  3. shutdown--show オプションで予約状況を確認
  4. 必要なら sudo shutdown -c でキャンセル
  5. 最後に exit で安全にログアウト

注意:演習4の -k は警告のみのため実際には停止しませんが、絶対に -h-r に変えないでください。検証環境とはいえ、再起動は時間のロスにつながります。manページで確認する習慣もつけてください。

$ man shutdown

理解度チェック

○か×で答えてください。回答と解説は次回冒頭で振り返ります。

  1. shutdown -k +10 は10分後に電源を切る予約コマンドである。
  2. multi-user.target は旧ランレベル5(GUI)に相当する。
  3. SSHのデフォルトポート番号は 22/tcp である。
  4. last reboot はシステムの再起動履歴を表示する。
  5. 現在のシステム状態を running / degraded / maintenance で示すのは systemctl is-system-running である。

解答

  • 1. × -k は警告のみで実際には停止しない
  • 2. × multi-user.target は旧ランレベル3(CUI)相当。GUIは graphical.target
  • 3.  22/tcp が標準
  • 4.  /var/log/wtmp から再起動履歴を表示
  • 5.  システム全体の健全性を一語で返す

次回予告

第2回は「ブートプロセスの仕組み:BIOS/UEFI → GRUB → systemd の流れ」です。今回登場したsystemdターゲットの一段階手前、「電源を入れた瞬間からログインプロンプトが出るまで何が起きているのか」を、コマンドと設定ファイルで追いかけます。

ブートプロセスを理解しておくと、起動失敗のトラブルシュートが目に見えて速くなります。

LinuC 101 試験対策シリーズ 全12回

広告
Linux
スポンサーリンク