コース一覧
Linux運用・管理
プロセスとは何か

Linux運用・管理

ユーザー権限、パーミッション、プロセス、ジョブ制御を学び、Linux上の実行中サービスと作業権限を安全に管理できるようにします。

1
パーミッションと権限管理
0. ユーザーとグループの概念5分
1. パーミッションの読み方5分
2. 権限の変更 chmod5分
3. 所有者の変更 chown5分
4. sudo - スーパーユーザーの力5分
5. 実行権限とスクリプト5分
6. パーミッションチェック5分
2
プロセス管理とジョブ制御
0. プロセスとは何か5分
1. psでプロセス一覧を確認する5分
2. topでリアルタイム監視する5分
3. プロセスの終了 kill5分
4. フォアグラウンドとバックグラウンド5分
5. nohupでログアウト後も実行する5分
6. プロセス管理チェック5分

Linux運用・管理

01ユーザーとグループの概念
02パーミッションの読み方
03権限の変更 chmod
04所有者の変更 chown
05sudo - スーパーユーザーの力
06実行権限とスクリプト
07パーミッションチェック
08プロセスとは何か
09psでプロセス一覧を確認する
10topでリアルタイム監視する
11プロセスの終了 kill
12フォアグラウンドとバックグラウンド
13nohupでログアウト後も実行する
14プロセス管理チェック

Linux運用・管理

プロセスとは何か

起動したはずのアプリが、動いているのか分からない

デプロイしてサーバーを起動したのに、ブラウザからは応答がない。ログにも何も出ていない。このとき最初に確かめたいのは、そのプログラムが今このマシンで走っているかどうかです。そもそも走っていないのか、走っているのに詰まっているのかで、次の一手はまったく変わります。

Linux はこれを、プロセスという単位で管理しています。走っているものは必ずプロセスとして数えられていて、走っていないものは 1 つも数えられていません。

プログラムは設計図、プロセスは建った家

/usr/bin/python3 はディスクに置かれたファイルで、これ自体は何もしません。起動するとメモリの領域と番号が割り当てられ、動く実体が生まれます。この実体がプロセスです。

ターミナル

$ pgrep -a python3
2100 python3 /app/worker.py
2101 python3 /app/worker.py

同じファイルを 2 回起動すれば、プロセスは 2 つできます。それぞれ別のメモリを持っていて、片方の変数がもう片方から見えることはありません。だから「python3 を止めたい」という言い方は曖昧で、止める対象は必ず番号で指します。

この番号を PID と呼びます。マシンの中で重複しない番号で、止めるときも資源の使用量を調べるときも、常にここが入口になります。自分が今打っているシェル自身の PID はシェル変数 $$ に入っていて、その親の PID は $PPID に入っています。

番号が分かれば、そのプロセスの中身はファイルとして覗けます。

ターミナル

$ ls /proc/2100/
cmdline  cwd  environ  exe  fd  limits  status

cmdline に起動時のコマンド行、cwd にどのディレクトリで動いているか、status にメモリの使用量が入っています。この後に出てくる道具は、どれも結局ここを読んで整えているだけです。

すべてのプロセスは 1 本の木につながっている

プロセスは、既にあるプロセスから枝分かれして生まれます。生んだ側の番号を PPID として持つので、親をたどっていくと必ず 1 番に行き着きます。

ターミナル

$ pstree -p | head -4
systemd(1)
 ├─sshd(890)───sshd(1234)───bash(1235)───vim(1300)
 └─cron(901)

ログインすると sshd の子として自分のシェルが生まれ、そのシェルの子として打ったコマンドが生まれる、という積み重なりです。この形を知っていると、止めたいものが枝の先なのか根元なのかを判断できます。Web サーバーのように親が子を作り直す作りだと、子を止めても親がすぐ新しい子を立てるので、いつまでも終わりません。

終わったのに消えないものがある

プロセスは終了するとき、終了コードを親に渡します。親がそれを受け取るまで、記録だけがその場に残り続けます。この状態をゾンビと呼びます。

一瞬なら普通のことですが、数が増え続けているなら、親のプログラムに受け取り忘れがあります。ゾンビ自体はメモリも CPU も使いませんが、PID の在庫を消費するので、放置すると新しいプロセスを作れなくなります。

解説

ゾンビは止められません。既に終わっているので、いくら終了を命じても何も起きません。消したいときは、受け取っていない親のほうを止めます。親がいなくなった子は 1 番のプロセスが引き取り、そこで回収されます。

このレッスンに出てくる用語

意味があいまいなまま進んだ語は、ここから読み直せます。

  • デプロイ本番環境へアプリを配置し公開する作業
  • サーバークライアント(ブラウザなど)がリクエストを送り、サーバーがレスポンスを返す。
  • ブラウザユーザーから見たWebのクライアント
  • プロセス実行中のプログラムのこと。
  • 設計何をどう作るかを決める前工程
  • メモリプログラムとデータを一時保持する高速領域
  • 変数データに名前をつけて参照する仕組み
  • シェルコマンドを解釈して実行するプログラム
生田 陸人
監修生田 陸人
ゆめさくエンジニア / 現役ソフトウェアエンジニア監修者プロフィールを見る →
編集 ゆめさく編集部·公開 2025/12/19·更新 2026/08/26

関連レッスン

  • psでプロセス一覧を確認する

    psコマンドを使って、現在実行中のプロセス一覧を表示し、確認する操作を学びます。

  • topでリアルタイム監視する

    topコマンドで、CPUやメモリの使用状況など、システムの状態をリアルタイムに監視します。

  • プロセスの終了 kill

    不要なプロセスを終了させる`kill`コマンドの使い方をターミナルで実践的に学びます。

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

    コマンドをフォアグラウンドとバックグラウンドで実行する方法を、実際に操作しながら理解します。

分からないところは Tap (AI先生) に質問できます

24 時間いつでも、あなたのレベルに合わせて日本語で答えます。