ターミナルでプロセス数を確認する方法!Linux・Mac・Windows完全ガイド

パソコンを使っていて、「今どれくらいのプログラムが動いているんだろう?」と思ったことはありませんか?

実は、目に見えているアプリ以外にも、裏で多くのプログラムが稼働しているんです。

この記事では、ターミナル(コマンドライン)を使ってプロセス数を確認する方法を、初心者の方にも分かりやすく解説していきます。システムの状態を把握して、トラブルシューティングにも役立てましょう!

スポンサーリンク
  1. プロセスとは?
    1. プロセスの定義
    2. プロセスの特徴
    3. 見えないプロセスも多数
  2. Linux/Macでプロセス数を確認する方法
    1. 方法1:psコマンドで総数を数える
    2. 方法2:psでユーザー別に確認
    3. 方法3:プロセス名でカウント
    4. 方法4:topコマンドで確認
    5. 方法5:htopで視覚的に確認
    6. 方法6:詳細な統計情報
    7. 方法7:リアルタイムで監視
  3. Windowsでプロセス数を確認する方法
    1. 方法1:タスクマネージャーで確認
    2. 方法2:PowerShellで確認
    3. 方法3:コマンドプロンプトで確認
    4. 方法4:特定のプロセスをカウント
    5. 方法5:プロセスの詳細情報
    6. 方法6:リソースモニター
  4. プロセス数の目安
    1. 一般的な目安
    2. 多すぎる場合の原因
    3. プロセス数の上限
  5. プロセスの詳細情報を確認
    1. Linux/Mac:psコマンド
    2. CPU使用率順に表示
    3. 特定のプロセスの詳細
    4. プロセスのツリー表示
  6. プロセス数が多すぎる時の対処法
    1. 1. 原因の特定
    2. 2. 不要なプロセスの終了
    3. 3. 暴走プロセスの停止
    4. 4. システムの再起動
  7. 実際の使用例
    1. 例1:メモリ不足の原因調査
    2. 例2:Chromeのプロセスが多すぎる
    3. 例3:開発環境で多数のプロセス
    4. 例4:サーバーの健全性チェック
  8. 便利なスクリプト
    1. プロセス数監視スクリプト(Bash)
    2. プロセス情報取得スクリプト(PowerShell)
  9. よくある疑問に答えます
    1. Q. プロセスとスレッドの違いは?
    2. Q. ゾンビプロセスって何?
    3. Q. プロセス数が多いとどうなる?
    4. Q. バックグラウンドプロセスとは?
  10. まとめ:プロセス数を把握してシステムを管理

プロセスとは?

まずは基本から理解しましょう。

プロセスの定義

プロセス(Process)とは、実行中のプログラムのことです。

例:

  • Webブラウザを起動 → ブラウザのプロセスが作られる
  • 音楽プレイヤーを起動 → 音楽プレイヤーのプロセスが作られる
  • ファイルをコピー → コピー処理のプロセスが作られる

プロセスの特徴

1. 一意の識別番号(PID)

  • PID(Process ID)という番号が割り当てられる
  • システム内で重複しない

2. リソースを消費

  • CPU時間
  • メモリ(RAM)
  • ディスクI/O
  • ネットワーク帯域

3. 親子関係

  • あるプロセスが別のプロセスを起動できる
  • 親プロセスと子プロセス

見えないプロセスも多数

ユーザーが起動したプロセス:

  • ブラウザ
  • エディタ
  • ゲーム

システムが起動したプロセス(デーモン/サービス):

  • ネットワーク管理
  • ディスク管理
  • セキュリティ監視
  • バックグラウンドタスク

実は、パソコンでは常に数百から数千のプロセスが動いています。

Linux/Macでプロセス数を確認する方法

Unix系OSでの確認方法を見ていきましょう。

方法1:psコマンドで総数を数える

基本コマンド:

# すべてのプロセス数を表示
ps aux | wc -l

# または
ps -e | wc -l

出力例:

324

これは324個のプロセスが動いていることを示します。

コマンドの意味:

  • ps aux:すべてのプロセスを詳細表示
  • |:パイプ(前のコマンドの出力を次に渡す)
  • wc -l:行数をカウント

方法2:psでユーザー別に確認

自分のプロセスのみ:

ps -u $(whoami) | wc -l

特定のユーザーのプロセス:

ps -u username | wc -l

方法3:プロセス名でカウント

特定のプロセスの数:

# Chromeのプロセス数
ps aux | grep chrome | grep -v grep | wc -l

# Pythonのプロセス数
ps aux | grep python | grep -v grep | wc -l

説明:

  • grep chrome:chromeを含む行を抽出
  • grep -v grep:grep自身を除外
  • wc -l:行数をカウント

方法4:topコマンドで確認

topを起動:

top

表示内容:

Tasks: 324 total,   2 running, 322 sleeping,   0 stopped,   0 zombie
  • total:総プロセス数
  • running:実行中
  • sleeping:待機中
  • stopped:停止中
  • zombie:終了処理待ち

終了方法:
q キーを押す

方法5:htopで視覚的に確認

htopをインストール:

# Ubuntu/Debian
sudo apt install htop

# macOS(Homebrew)
brew install htop

# CentOS/RHEL
sudo yum install htop

htopを起動:

htop

特徴:

  • カラフルで見やすい
  • CPU・メモリ使用率がリアルタイム表示
  • マウス操作も可能
  • プロセスのツリー表示

画面上部に表示:

Tasks: 324, 512 thr; 2 running

方法6:詳細な統計情報

プロセスの状態別カウント:

# 状態別に集計
ps aux | awk 'NR>1 {print $8}' | sort | uniq -c

出力例:

  10 D     # ディスクI/O待ち
   2 R     # 実行中
 310 S     # スリープ(割り込み可能)
   2 Z     # ゾンビプロセス

プロセス状態の意味:

  • R (Running):実行中または実行待ち
  • S (Sleeping):割り込み可能なスリープ
  • D (Disk sleep):ディスクI/O待ち(割り込み不可)
  • Z (Zombie):終了済みだが親が回収待ち
  • T (Stopped):停止中

方法7:リアルタイムで監視

watchコマンドで定期更新:

# 2秒ごとにプロセス数を更新表示
watch -n 2 'ps aux | wc -l'

終了方法:
Ctrl + C

Windowsでプロセス数を確認する方法

Windows環境での確認方法です。

方法1:タスクマネージャーで確認

起動方法:

  • Ctrl + Shift + Esc を同時押し
  • または Ctrl + Alt + Delete → タスクマネージャー

確認場所:

  1. 「プロセス」タブを開く
  2. 下部に「プロセス: XX」と表示される

詳細表示:
「詳細」タブでより詳しい情報が見られます。

方法2:PowerShellで確認

総プロセス数:

# プロセス数を表示
(Get-Process).Count

# または
Get-Process | Measure-Object | Select-Object -ExpandProperty Count

出力例:

247

方法3:コマンドプロンプトで確認

tasklistコマンド:

tasklist | find /c /v ""

説明:

  • tasklist:実行中のプロセス一覧
  • find /c /v "":行数をカウント

方法4:特定のプロセスをカウント

PowerShellで:

# Chromeのプロセス数
(Get-Process -Name chrome -ErrorAction SilentlyContinue).Count

# すべてのEdgeプロセス
(Get-Process | Where-Object {$_.ProcessName -like "*edge*"}).Count

方法5:プロセスの詳細情報

CPU・メモリ使用量の上位10個:

# CPU使用率順
Get-Process | Sort-Object CPU -Descending | Select-Object -First 10

# メモリ使用量順(MB単位)
Get-Process | Sort-Object WS -Descending | Select-Object -First 10 Name, @{N='Memory(MB)';E={[math]::Round($_.WS/1MB,2)}}

方法6:リソースモニター

起動方法:

  1. タスクマネージャーを開く
  2. 「パフォーマンス」タブ
  3. 下部の「リソース モニターを開く」をクリック

表示内容:

  • CPU使用状況
  • メモリ使用状況
  • ディスクI/O
  • ネットワーク使用状況
  • プロセスごとの詳細

プロセス数の目安

どれくらいのプロセス数が正常なのでしょうか?

一般的な目安

Linux(デスクトップ):

  • 最小構成:100〜200プロセス
  • 通常使用:200〜400プロセス
  • 多数のアプリ起動時:400〜600プロセス

macOS:

  • アイドル時:250〜350プロセス
  • 通常使用:350〜500プロセス
  • 多数のアプリ起動時:500〜700プロセス

Windows 10/11:

  • アイドル時:100〜200プロセス
  • 通常使用:150〜250プロセス
  • 多数のアプリ起動時:250〜400プロセス

多すぎる場合の原因

1. メモリリーク
プログラムがメモリを解放せず、プロセスが増え続ける。

2. フォークボム
プロセスが無限に自己複製する(悪意のあるプログラム)。

3. 暴走プログラム
バグで無限ループに入り、プロセスを大量生成。

4. ブラウザのタブ多数
ChromeやEdgeは、タブごとにプロセスを作成。

プロセス数の上限

Linuxでの確認:

# システム全体の上限
cat /proc/sys/kernel/pid_max

# ユーザーごとの上限
ulimit -u

一般的な上限:

  • Linux:32,768〜4,194,304(設定による)
  • macOS:約2,000〜5,000(実質的な制限)
  • Windows:約2,000,000(理論値)

プロセスの詳細情報を確認

単なる数だけでなく、詳細を見る方法です。

Linux/Mac:psコマンド

詳細表示:

# すべてのプロセスを詳細表示
ps aux

# 出力例:
# USER  PID %CPU %MEM    VSZ   RSS TTY STAT START TIME COMMAND
# root    1  0.0  0.1 169416 11580 ?   Ss   10:30 0:01 /sbin/init

カラムの意味:

  • USER:実行ユーザー
  • PID:プロセスID
  • %CPU:CPU使用率
  • %MEM:メモリ使用率
  • VSZ:仮想メモリサイズ(KB)
  • RSS:物理メモリサイズ(KB)
  • TTY:制御端末
  • STAT:プロセス状態
  • START:開始時刻
  • TIME:CPU時間の累計
  • COMMAND:コマンド名

CPU使用率順に表示

# CPU使用率の高い順にトップ10
ps aux --sort=-%cpu | head -n 11

# メモリ使用量の多い順にトップ10
ps aux --sort=-%mem | head -n 11

特定のプロセスの詳細

# プロセス名で検索
ps aux | grep firefox

# PIDで検索
ps -p 1234 -f

プロセスのツリー表示

親子関係を表示:

# pstreeコマンド
pstree

# または
ps auxf

# 特定のプロセスのツリー
pstree -p 1234

プロセス数が多すぎる時の対処法

異常にプロセスが多い場合の対応です。

1. 原因の特定

リソース使用量の確認:

# Linux/Mac
top

# または
htop

CPU・メモリを大量消費しているプロセスを見つける。

2. 不要なプロセスの終了

Linuxで特定のプロセスを終了:

# PIDを指定して終了(通常終了)
kill 1234

# 強制終了
kill -9 1234

# プロセス名で終了
pkill firefox

# 強制終了
pkill -9 firefox

Windowsで終了:

# プロセス名で終了
Stop-Process -Name chrome

# PIDで終了
Stop-Process -Id 1234

# 強制終了
Stop-Process -Name chrome -Force

3. 暴走プロセスの停止

多数のプロセスを一括終了:

# 特定のユーザーのすべてのプロセスを終了(注意!)
pkill -u username

# 特定の名前パターンで終了
pkill -f "python.*script.py"

4. システムの再起動

最終手段として、システムを再起動します。

# Linux
sudo reboot

# macOS
sudo shutdown -r now

Windows:
スタートメニュー → 電源 → 再起動

実際の使用例

具体的な場面での活用方法です。

例1:メモリ不足の原因調査

状況:
パソコンが重い、メモリが足りない。

手順:

# メモリ使用量の多いプロセスを表示
ps aux --sort=-%mem | head -n 20

# または htop で視覚的に確認
htop

対処:

  • メモリを大量消費しているプロセスを特定
  • 不要なら終了
  • 必要なら、他の軽いアプリに切り替え

例2:Chromeのプロセスが多すぎる

確認:

# Chromeのプロセス数
ps aux | grep chrome | grep -v grep | wc -l

原因:

  • タブを開きすぎ
  • 拡張機能が多い
  • バックグラウンドプロセスが残っている

対処:

  • 不要なタブを閉じる
  • 拡張機能を減らす
  • Chromeを再起動

例3:開発環境で多数のプロセス

状況:
Docker、Node.js、Pythonなど、開発ツールを多数起動している。

確認:

# Dockerのプロセス
docker ps | wc -l

# Node.jsのプロセス
ps aux | grep node | grep -v grep | wc -l

# Pythonのプロセス
ps aux | grep python | grep -v grep | wc -l

対処:

  • 使っていないコンテナを停止
  • 不要な開発サーバーを終了
  • プロジェクトごとに環境を分離

例4:サーバーの健全性チェック

定期的な監視:

# プロセス数をログに記録
echo "$(date): $(ps aux | wc -l) processes" >> /var/log/process_count.log

# 閾値を超えたら警告
PROCESS_COUNT=$(ps aux | wc -l)
if [ $PROCESS_COUNT -gt 500 ]; then
    echo "警告: プロセス数が多すぎます ($PROCESS_COUNT)"
fi

便利なスクリプト

プロセス管理を自動化するスクリプトです。

プロセス数監視スクリプト(Bash)

#!/bin/bash
# process_monitor.sh

# 閾値設定
MAX_PROCESSES=500

# 現在のプロセス数
CURRENT=$(ps aux | wc -l)

echo "現在のプロセス数: $CURRENT"

if [ $CURRENT -gt $MAX_PROCESSES ]; then
    echo "警告: プロセス数が閾値 ($MAX_PROCESSES) を超えています!"

    # 上位10個のメモリ消費プロセスを表示
    echo "メモリ使用量上位10:"
    ps aux --sort=-%mem | head -n 11

    # 必要ならメール通知やログ記録を追加
fi

プロセス情報取得スクリプト(PowerShell)

# process_info.ps1

# プロセス数
$ProcessCount = (Get-Process).Count
Write-Host "総プロセス数: $ProcessCount"

# メモリ使用量上位10
Write-Host "`nメモリ使用量上位10:"
Get-Process | Sort-Object WS -Descending | 
    Select-Object -First 10 Name, 
    @{N='Memory(MB)';E={[math]::Round($_.WS/1MB,2)}}

# CPU使用率上位10
Write-Host "`nCPU使用率上位10:"
Get-Process | Sort-Object CPU -Descending | 
    Select-Object -First 10 Name, CPU

よくある疑問に答えます

Q. プロセスとスレッドの違いは?

プロセス:

  • 独立した実行単位
  • 独自のメモリ空間を持つ
  • 他のプロセスに影響しにくい

スレッド:

  • プロセス内の実行単位
  • プロセスのメモリを共有
  • より軽量

一つのプロセスが複数のスレッドを持つことができます。

Q. ゾンビプロセスって何?

ゾンビプロセス:
終了したが、親プロセスが終了状態を回収していないプロセスです。

確認方法:

# ゾンビプロセスの数
ps aux | awk '$8=="Z" {print $0}' | wc -l

対処:
通常は自動的に回収されますが、多数あれば親プロセスを再起動します。

Q. プロセス数が多いとどうなる?

影響:

  • メモリ不足になりやすい
  • システムの応答が遅くなる
  • 新しいプロセスを起動できなくなる
  • 最悪の場合、システムがフリーズ

対策:
不要なプロセスを終了し、システムリソースを確保します。

Q. バックグラウンドプロセスとは?

バックグラウンドプロセス:
ユーザーとの対話なしに動作するプロセスです。

例:

  • Webサーバー
  • データベース
  • 定期バックアップ
  • システム監視

確認:

# デーモン(バックグラウンドプロセス)を表示
ps aux | grep -E '\?|daemon'

まとめ:プロセス数を把握してシステムを管理

プロセス数の確認は、システムの健全性を把握する重要な手段です。

重要ポイントをおさらい:

  • プロセスは実行中のプログラムの単位
  • Linux/Macでは ps aux | wc -l で総数を確認
  • Windowsではタスクマネージャーまたは (Get-Process).Count
  • topやhtopでリアルタイム監視が可能
  • 一般的には200〜500プロセスが正常範囲
  • プロセス数が多すぎる場合は原因を特定して対処
  • 定期的な監視でトラブルを未然に防ぐ
  • CPU・メモリ使用率も合わせて確認する

システムの状態を理解し、適切に管理することで、快適な作業環境を維持できます。

プロセス数の確認を習慣にして、トラブルに強いシステム運用を目指しましょう!

コメント

タイトルとURLをコピーしました