【ps/tasklist】実行中のプロセスを表示する ~今週のコマンド007

0

金曜連載

今週のコマンド

この連載ではUNIXライクなOS(Linux,Macなど)や、Windowsのコマンドプロンプトで使えるコマンドを週に数個ずつ、紹介します。

第7回となる今回は、実行中のソフトウェアなどのプロセスを表示するコマンド「ps/tasklist」を紹介しようと思います。Windowsでいう「タスクマネージャ」の「プロセス」タブのようなものですね。

ページ内ジャンプ

psコマンド(Linux,Mac)tasklistコマンド(Windows)

 

構文(Linux,Mac)

Linux ps [オプション]

実行中のプロセスを表示します。

オプション

-a 全てのプロセスを表示する(セッションリーダと端末を持たないプロセスを除く)
-A, -e 全てのプロセスを表示する
f プロセスをツリー形式で表示する
-m スレッドも表示する
s シグナルフォーマットで表示する
T この端末で実行中のプロセスのみを表示する
u ユーザーフォーマットで表示する
v 仮想メモリフォーマットで表示する
r 実行中のプロセスのみ表示する

使用例

ユーザーフォーマットで表示する

$ ps u
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
s1XXXXXX 20396 0.0 0.1 29512 12360 pts/6 Ss 10:32 0:00 -bash
s1XXXXXX 27773 0.4 0.1 176212 14372 pts/6 T 11:12 0:00 emacs
s1XXXXXX 27913 0.0 0.0 16316 1116 pts/6 R+ 11:12 0:00 ps u
$

各項目について説明します。

USER-ユーザー, PID-プロセスID, %CPU-CPU使用率, %MEM-メモリ使用率,

VSZ-仮想メモリサイズ, RSS-使用物理メモリ量, TTY-制御端末の種類と番号,

STAT-プロセスのステータス, TIME-プロセスの開始時刻, COMMAND-プロセスのコマンド名

プロセスのステータス表示について

プロセスの状態コードは以下のものがあります。

D 割込みできないスリープ状態 R 実行中、実行可能状態 S 割込みできるスリープ状態 T 停止中 W ページング状態 X 死んだ状態 Z ゾンビプロセス(終了したが親プロセスによって回収されなかった)

また特定の形式では以下の添付文字が付くことがあります。

< 優先度高 N 優先度低 L 実メモリのページをロック利用 s セッションリーダ l マルチスレッド化されている + フォアグラウンドのプロセスグループに含まれている

シグナルフォーマットで表示する

シグナルとは実行中のプロセスに対してOS側が別のプログラムを「割り込んで」実行させる要求のことです(つまりシグナルとは、プロセスに送られるソフトウェア的な割り込み要求である。,例えば実行中のプロセスを強制的に中止する「Ctrl+C」のような要求 )

$ ps s
UID PID PENDING BLOCKED IGNORED CAUGHT STAT TTY TIME COMMAND
895 24415 00000000 00010000 00384004 4b813efb Ss pts/2 0:00 -bash
895 24478 00000000 00000000 00000000 73d3fad9 R+ pts/2 0:00 ps s
$

各項目について説明します。

PENDING-待機中のシグナルのマスク(シグナルマスクはそのスレッドが現在ブロックしているシグナル集合を示すものである)

BLOCKED-ブロックされたシグナルのマスク

IGNORED-無視されたシグナルのマスク

CAUGHT-キャッチされたシグナルのマスク

※別のシグナルが実行中の時に「シグナルがブロックされる」事があります。(ex 「Ctrl+C」の実行に時間がかかり、直後に入力した「Ctrl+Z」がブロックされる)

 

構文(Windows)

Windows tasklist [オプション]

実行中のタスクを表示する。

オプション

/SVC それぞれのプロセスのサービスを表示する
/APPS Windowsストアアプリのプロセスを表示する
/V 詳細な情報も表示する
/FI [条件] 条件にあったプロセスのみを表示する
「STATUS,IMAGENAM,PID,SESSION,SESSIONNAME,CPUTIME,
MEMUSAGE,USERNAME,SERVICES,WINDOWSTITLE,MODULES」を
「eq(=),ne(≠),gt(>),lt(<),ge(≦),le(≧)」などの演算子をつかって指定する。
(※場合によっては使えない演算子もあります)
/FO [形式] 指定した形式で表示する(“TABLE”, “LIST”, CSV”)
/NH ヘッダーを表示しない

使用例

Windowsストアアプリのプロセスのみを表示

「/APPS」オプションを指定

C:\>tasklist /APPS

イメージ名 PID メモリ使用量 パッケージ名
================================================== ======== ============ =================
RemindersServer.exe (ppleae38af2e007f4358a809ac99a 5364 19,592 K Microsoft.Windo..
SkypeHost.exe (ppleae38af2e007f4358a809ac99a64a67c 5412 6,500 K Microsoft.Messa..
ShellExperienceHost.exe (App) 5588 89,544 K Microsoft.Windo..
SearchUI.exe (CortanaUI) 5832 96,664 K Microsoft.Windo..
MicrosoftEdge.exe (MicrosoftEdge) 10972 114,652 K Microsoft.Micro..
MicrosoftEdgeCP.exe (MicrosoftEdge) 11144 77,584 K Microsoft.Micro..

C:\>

ウィンドウのタイトルを指定して表示

「/FI」と条件を指定

C:\>tasklist /FI “WINDOWTITLE eq Cortana”

イメージ名 PID セッション名 セッション# メモリ使用量
========================= ======== ================ =========== ============
SearchUI.exe 5832 Console 1 167,440 K

C:\>


 

0