カテゴリ: Linux 更新日: 2026/02/15

Linuxプロセスとは?基本概念から確認コマンドまで初心者向けに徹底解説

Linuxのプロセスとは何か?基本概念を初心者向けに解説
Linuxのプロセスとは何か?基本概念を初心者向けに解説

先生と生徒の会話形式で理解しよう

生徒

「Linuxを勉強していると『プロセス』という言葉がよく出てくるのですが、これって何のことですか?」

先生

「プロセスというのは、簡単に言うと『今、コンピュータの中で動いているプログラム』のことですよ。」

生徒

「プログラムそのものとは違うんですか?」

先生

「良い視点ですね。プログラムは『料理のレシピ』、プロセスは『実際に料理を作っている最中の状態』と考えると分かりやすいですよ。詳しく見ていきましょう!」

1. Linuxの「プロセス」とは何か?

1. Linuxの「プロセス」とは何か?
1. Linuxの「プロセス」とは何か?

Linuxの世界で最も重要な概念の一つが「プロセス」です。初心者の方には少し難しく聞こえるかもしれませんが、実は私たちがパソコンやスマートフォンを使っている間、常に裏側で動いているものです。

プロセスとは、実行中のプログラムのことを指します。たとえば、あなたがLinuxのターミナル(黒い画面)を開いて何か入力をしたり、ブラウザでWebサイトを見たりしているとき、コンピュータの内部ではそれらを動かすためのプロセスが生成されています。

プログラムそのものは、ハードディスクやSSDなどの保存場所に置かれている「ただのファイル(データ)」です。しかし、そのファイルが実行されて、コンピュータの頭脳であるCPUや、作業机であるメモリを使って動き出した瞬間に「プロセス」という名前に変わるのです。

2. プログラムとプロセスの違いを例え話で理解する

2. プログラムとプロセスの違いを例え話で理解する
2. プログラムとプロセスの違いを例え話で理解する

プログラミング未経験の方でも分かりやすいように、料理に例えて説明します。Linuxにおけるプログラムとプロセスの関係は、「料理のレシピ本」と「実際に料理をしているキッチン」の関係にそっくりです。

  • プログラム:本棚に並んでいる「カレーの作り方」が書かれたレシピ本です。これだけではカレーは食べられません。
  • プロセス:レシピを見ながら、実際にコンロの火をつけ、野菜を切っている「調理中の状態」です。

レシピ本(プログラム)が1冊しかなくても、複数の料理人(コンピュータの実行単位)がいれば、同時にいくつもの鍋でカレーを作る(複数のプロセスを立ち上げる)ことができます。このように、一つのプログラムから複数のプロセスが生まれることもあるのがLinuxの特徴です。

3. 全てのプロセスには「PID」という背番号がある

3. 全てのプロセスには「PID」という背番号がある
3. 全てのプロセスには「PID」という背番号がある

Linuxシステムの中では、驚くほどたくさんのプロセスが同時に動いています。システムはこれらを一つひとつ区別するために、PID(プロセスID)という数字を割り振っています。

PIDは、人間でいうところの「マイナンバー」や、スポーツ選手の「背番号」のようなものです。LinuxはこのPIDを使って、「どのプロセスがどれくらいメモリを使っているか」や「どのプロセスを終了させるか」を管理しています。

一番最初に動き出すプロセスには通常「1」という番号が振られ、そこから次々と新しいプロセスが生まれていく仕組みになっています。この親子関係のような繋がりも、Linuxを理解する上での面白いポイントです。

4. psコマンドで動いているプロセスを見てみよう

4. psコマンドで動いているプロセスを見てみよう
4. psコマンドで動いているプロセスを見てみよう

では、実際に自分のパソコンでどんなプロセスが動いているか確認してみましょう。使うのはpsというコマンドです。これは「Process Status」の略で、現在のプロセスの状態を表示してくれます。

まずは、自分が現在使っているターミナルに関連するプロセスだけを表示してみます。


ps
  PID TTY          TIME CMD
 1234 pts/0    00:00:00 bash
 5678 pts/0    00:00:00 ps

上記の実行結果を見てみましょう。PIDの列に数字が表示されていますね。CMDの列にあるbashというのは、あなたが今命令を入力している窓口となるプログラムのことです。ps自体も、実行した瞬間にプロセスとして動くので一覧に表示されます。

5. システム全体のプロセスを確認する「ps aux」

5. システム全体のプロセスを確認する「ps aux」
5. システム全体のプロセスを確認する「ps aux」

先ほどのコマンドでは自分の周りのことしか分かりませんでしたが、Linuxの裏側でこっそり動いているシステム全体のプロセスを見たいときは、オプションを付けて実行します。最もよく使われるのがauxという魔法の言葉です。


ps aux
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.1 168604  9688 ?        Ss   09:00   0:01 /sbin/init
user      2000  0.5  2.0 850000 45000 ?        Sl   09:05   0:15 /usr/bin/firefox

このように実行すると、画面いっぱいにプロセスが表示されます。%CPUはCPUをどれくらい使っているか、%MEMはメモリをどれくらい使っているかを示します。パソコンが重いなと感じたときは、このコマンドで犯人探しをすることもあります。

6. リアルタイムに監視する「top」コマンド

6. リアルタイムに監視する「top」コマンド
6. リアルタイムに監視する「top」コマンド

psコマンドは「その瞬間」を切り取った写真のようなものですが、刻一刻と変化する状況を動画のように見たいときはtopコマンドを使います。


top
top - 10:00:01 up 1:00,  1 user,  load average: 0.05, 0.03, 0.01
Tasks: 105 total,   1 running, 104 sleeping,   0 stopped,   0 zombie
%Cpu(s):  1.5 us,  0.5 sy,  0.0 ni, 98.0 id,  0.0 wa,  0.0 hi,  0.0 si

このコマンドを実行すると、数秒おきに画面が更新され、今まさに頑張って動いているプロセスが上位に表示されます。終了したいときはキーボードの「q」を押すと元の画面に戻れます。

7. プロセスを終了させる「kill」コマンド

7. プロセスを終了させる「kill」コマンド
7. プロセスを終了させる「kill」コマンド

アプリが固まってしまったり、プログラムが暴走して止まらなくなったりしたときに使うのがkillコマンドです。物騒な名前ですが、要するに「プロセスに終了命令を送る」ためのコマンドです。

使い方は非常にシンプルで、kill [PID]と入力します。例えば、PIDが9999のプロセスを止めたい場合は以下のようになります。


kill 9999

これでも止まらない頑固なプロセスには、さらに強力な-9というオプションを付けることもありますが、まずは優しく終了を促すのが基本です。誰かが使っている大切なプロセスを勝手に消さないように注意しましょう。

8. 特権ユーザー(ルート)でのプロセス管理

8. 特権ユーザー(ルート)でのプロセス管理
8. 特権ユーザー(ルート)でのプロセス管理

自分のプロセスだけでなく、システム全体の重要なプロセスを操作するには、管理者権限が必要になります。Linuxではこの最強の権限を持つユーザーをroot(ルート)と呼びます。

例えば、システムに不可欠なサービスを再起動したり停止したりする場合、一般ユーザーでは拒否されてしまいます。その際はルート権限でコマンドを実行します。


kill 101
bash: kill: (101) - Operation not permitted

このように、他のユーザーが動かしているプロセスやシステムに関わるものを操作しようとすると、「許可されていません」と怒られます。ルートユーザーはコンピュータの全ての権限を持っているため、操作には細心の注意が必要です。

9. フォアグラウンドとバックグラウンド

9. フォアグラウンドとバックグラウンド
9. フォアグラウンドとバックグラウンド

プロセスには「目の前で動いているもの」と「裏側で動いているもの」の2種類があります。

  • フォアグラウンド:今まさにあなたが操作している状態。そのプログラムが終わるまで次の入力ができません。
  • バックグラウンド:裏側でこっそり動いている状態。その間にあなたは別の作業をターミナルで続けることができます。

コマンドの最後に「&」を付けて実行すると、そのプロセスはバックグラウンドで動き出します。例えば、すごく時間がかかる計算プログラムを動かすときは、バックグラウンドにしておくと待ち時間を有効に使えます。


./heavy_script.sh &
[1] 12345

これで、スクリプトの実行が終わるのを待たずに、次のコマンドを打ち込めるようになります。Linuxがマルチタスク(同時にたくさんのことをこなす)が得意なのは、この仕組みがあるからです。

カテゴリの一覧へ
新着記事
New1
AWS PrivateLink
AWS PrivateLinkのユースケースと業界別活用事例|セキュアな通信の決定版
New2
AWS PrivateLink
AWS PrivateLinkのログ取得とトラブル対応手順を完全ガイド!初心者でもわかるセキュアな接続確認方法
New3
ファイル・ディレクトリ構造
Linuxの/etcディレクトリとは?設定ファイルの役割を初心者向けに徹底解説
New4
AWS Lambda
AWS Lambdaでログを確認する方法を完全解説!CloudWatch Logsで初心者でも安心運用
人気記事
No.1
Java&Spring記事人気No1
S3(オブジェクトストレージ)
AWS S3の料金体系をわかりやすく解説
No.2
Java&Spring記事人気No2
Linux ディストリビューション
Linuxディストリビューションとは?OSとの関係や初心者におすすめの種類を徹底解説!
No.3
Java&Spring記事人気No3
ELB(ロードバランサー)
AWS ELBでターゲットグループを設定する方法を初心者向けに解説!
No.4
Java&Spring記事人気No4
シェルとターミナル基礎
findコマンドの使い方を完全ガイド!初心者でもわかるLinuxのファイル検索の基本
No.5
Java&Spring記事人気No5
Linux ディストリビューション
Ubuntuとは何か?特徴と向いている用途を初心者向けに徹底解説!
No.6
Java&Spring記事人気No6
AWS 基本
AWSのサービスのステータス確認方法(AWS Health Dashboard)
No.7
Java&Spring記事人気No7
RDS(データベース)
AWS RDSのセキュリティグループ設定方法を解説!初心者でも安心のクラウドデータベース対策
No.8
Java&Spring記事人気No8
ELB(ロードバランサー)
AWSのNetwork Load Balancer(NLB)の特徴と使い方を解説!初心者向けロードバランサー入門