Quantcast
Channel: Planet MySQL
Viewing all articles
Browse latest Browse all 1081

POSIX環境psコマンド相当のWindowsコマンド

$
0
0
Linuxを含むPOSIX環境での開発では、よくプロセス一覧を取得するのにpsコマンドを使います。
しかし、Windows環境ではpsコマンドはなく、そのような用途には以下のいずれかを使います。

[Windowsのビルトインコマンド]

(1) tasklist
(2) wmic(WMIのコマンドライン)

[追加インストールして利用]

(3) pslist(sysinternalsツール)
(4) ps(CygwinなどのPOSIX環境互換ツール)

まぁぶっちゃけ(4)をいれれば、まったく同じように動作するからいいんだけど、ここではそれ以外(笑)の方法をご紹介します。

(1) tasklist
[書式]
TASKLIST [共通オプション] [/M [モジュール] | /SVC | /V] [/FI フィルター] [/FO 形式] [/NH]

ローカル(またはリモート)のシステムで実行されているプロセスの一覧を表示します。オプションなしでは簡単な形式で全てのプロセスを表示します。細かく表示するには/Vオプションを指定します。
出力結果を絞り込みたいときにはフィルターを使います。フィルターは「フィルター名 演算子 値」の形で指定します。よく使うのはIMAGENAMEとSERVICESです。前者は実行形式ファイル名を指定し、後者はサービス名を指定します。演算子はeq(等しい), ne(等しく無い)は全てのサービス名に利用でき、具体的な数値で大小比較できるものはgt, lt, ge, leが使えます。

例えばサービス名MySQLのMySQLサーバのリストを出すには次のように入力します。

CMD> tasklist /fi "services eq mysql"

例えば実行形式名mysqld.exeのMySQLサーバのリストを出すには次のように入力します。

CMD> tasklist /fi "imagename eq mysqld.exe"

/m モジュール名、をつけると特定のモジュール(exeまたはdll形式)を読み込んだプロセスを表示できます。また/mだけつけると、プロセスが読み込んだモジュールを全部表示します。先ほどのコマンドに/mを追加した結果は次のようになります。

CMD> tasklist /fi "services eq mysql" /m

イメージ名 PID モジュール
========================= ======== ============================================
mysqld.exe 2072 ntdll.dll, kernel32.dll, KERNELBASE.dll,
ADVAPI32.dll, msvcrt.dll, sechost.dll,
RPCRT4.dll, dbghelp.dll, USER32.dll,
GDI32.dll, LPK.dll, USP10.dll, WS2_32.dll,
NSI.dll, IMM32.DLL, MSCTF.dll, NLAapi.dll,
napinsp.dll, pnrpnsp.dll, wshbth.dll,
WLIDNSP.DLL, PSAPI.DLL, SHLWAPI.dll,
mswsock.dll, DNSAPI.dll, winrnr.dll,
wship6.dll, wshtcpip.dll

 出力結果を別のプログラム等で使うために形式を代えるには/FOを指定します。CSV形式に出力するには/FO CSVを指定します。例えばサービス名がMySQLのプロセスを詳細表示して、それをCSVで書き出すには次のように指定します。

CMD> tasklist /fi "services eq mysql" /v /fo csv
"イメージ名","PID","セッション名","セッション#","メモリ使用量","状態","ユーザー名","CPU 時間","ウィンドウ タイトル"
"mysqld.exe","2072","Services","0","440,756 K","Unknown","NT AUTHORITY¥SYSTEM","0:00:24","N/A"

上記結果には一行目にヘッダ行がでていますが、/NHを指定するとヘッダ行が出力されません(No Headerの意)



(2) wmic(WMIのコマンドライン)
 WMI(Windows Management Instrumentation)はWindowsにおけるシステム管理のための共通基盤アーキテクチャでWindows2000以降標準実装されています。wmicはそのコマンドラインツールでWindows XP以降で利用できます。概略は以下の記事が詳しいです。

WMIとwmicコマンドを使ってシステムを管理する(基本編)

以下のようにprocess(またはprocess list)を指定するとpsコマンドのようにつらつらと情報がでてきます。

wmic process

wmic process list

ほぼ同じ出力ですが、違いは以下の5項目です。
wmic process: Caption,CreationClassName, CreationDate, CSCreationClassName,OSCreationClassNameが追加されている。

出力が多すぎるので、通常はWHERE句で絞ります。条件は"か()でくくります。

wmic process where "name = 'mysqld.exe'"

wmic process where (name='mysqld.exe')

[出力結果]
Caption CommandLine
CreationClassName Crea
tionDate CSCreationClassName CSName Description Executa
blePath ExecutionState Handle HandleC
ount InstallDate KernelModeTime MaximumWorkingSetSize MinimumWorkingSetSize
Name OSCreationClassName OSName
OtherOperationCount OtherTransferCount PageFaul
ts PageFileUsage ParentProcessId PeakPageFileUsage PeakVirtualSize PeakWork
ingSetSize Priority PrivatePageCount ProcessId QuotaNonPagedPoolUsage Quota
PagedPoolUsage QuotaPeakNonPagedPoolUsage QuotaPeakPagedPoolUsage ReadOperati
onCount ReadTransferCount SessionId Status TerminationDate ThreadCount Use
rModeTime VirtualSize WindowsVersion WorkingSetSize WriteOperationCount Wri
teTransferCount
mysqld.exe "C:¥Program Files¥MySQL¥MySQL Server 5.6¥bin¥mysqld" --defaults-file
="C:¥ProgramData¥MySQL¥MySQL Server 5.6¥my.ini" MySQL56 Win32_Process 2014
0824111335.866858+540 Win32_ComputerSystem MEIJI-ACER-PC mysqld.exe C:¥Prog
ram Files¥MySQL¥MySQL Server 5.6¥bin¥mysqld.exe 2036 586
254281630 1380 200
mysqld.exe Win32_OperatingSystem Microsoft Windows 7 Home Premium |C:¥Windows
|¥Device¥Harddisk0¥Partition3 44663 16279920 130467
458804 572 470524 571183104 456892
8 469815296 2036 22 123
39 124 987
6501397 0 32 247
261585 571183104 6.1.7601 259022848 1775461 227
0540

出力項目も多すぎるので(笑) get 項目名[, 項目名, ....]で絞れる場合は絞りましょう。

wmic process where (name='mysqld.exe') get name, processid, commandline

CommandLine
Name ProcessId
"C:¥Program Files¥MySQL¥MySQL Server 5.6¥bin¥mysqld" --defaults-file="C:¥Program
Data¥MySQL¥MySQL Server 5.6¥my.ini" MySQL56 mysqld.exe 2036

以下の記事が参考になりました。

LinuxのpsコマンドみたいなWindowsのコマンド(ありの日記)
WMIC のヒント集(MSDN)

今日はここまで。次回は(3)について説明します。

JUGEMテーマ:コンピュータ



PlanetMySQL Voting: Vote UP / Vote DOWN

Viewing all articles
Browse latest Browse all 1081

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>