5.1 プロセス管理

Process Management

プロセスは実行中のプログラムである。Linuxではすべてのプロセスがツリー構造を形成し、PIDで識別される。

プロセスの概念

プロセスツリー

図1: プロセスツリーの構造

用語 説明
PID プロセスID(一意の識別子)
PPID 親プロセスID
UID 実行ユーザーID
デーモン バックグラウンドで動作するサービス

ps(プロセス一覧)

# 現在のターミナルのプロセス
ps

# すべてのプロセス(BSD形式)
ps aux

# すべてのプロセス(Unix形式)
ps -ef

# ツリー表示
ps axjf
pstree

# 特定ユーザーのプロセス
ps -u username

# 特定プロセスを検索
ps aux | grep nginx
説明
USER 実行ユーザー
PID プロセスID
%CPU CPU使用率
%MEM メモリ使用率
STAT 状態(R:実行, S:待機, Z:ゾンビ)
COMMAND コマンド名

top / htop

# リアルタイムモニタ
top

# 高機能版(要インストール)
htop
キー(top) 操作
q 終了
k プロセス終了(PID入力)
M メモリ順ソート
P CPU順ソート
1 CPU個別表示

kill(プロセス終了)

# シグナル送信
kill PID
kill -15 PID      # SIGTERM(デフォルト)
kill -9 PID       # SIGKILL(強制終了)

# 名前で終了
killall nginx
pkill -f 'python script.py'

# シグナル一覧
kill -l
出典
[1] man ps - report a snapshot of the current processes.
[2] man top - display Linux processes.
[3] man kill - send a signal to a process.