2015年1月20日火曜日

Cygwin上でWindowsのプロセスをkillする方法

概要

Cygwin上で動作したプロセスはkillコマンドで停止できますがWindows上で動作しているプロセス(例えばexplorer.exeとか)はkillコマンドでは停止できません
Windows上のプロセスを停止したい場合はタスクマネージャを起動してそこから停止したいプロセスを停止します

いちいちタスクマネージャを起動するのも面倒なのでCygwin上でWindows上のプロセスを停止する方法を紹介します

環境

  • Windows7 64bit
  • Cygwin 1.7.32

実行方法

まずはWindows上で動作してしているプロセスのプロセス番号を取得します
普通は「pa aux」とかを使うと思いますがこれだとWindows上のプロセスを表示することができません

以下のコマンドでWindows上のプロセス番号を確認することができます

ps -efW

上記のオプションを使うことでCygwin上でWindows上のプロセス番号を調べることができます
例えば「ps -efW | grep explorer」とか実行するとexplorer.exeのプロセス番号を取得できます

プロセス番号がわかったら実際にkillしてみます
普通は「kill 9999」みたいな感じでkillしますがWindows上で動作しているプロセス番号を指定すると「No such process」と言われてkillできません

代わりに「taskkill.exe」というコマンドを使用します
使い方は以下の通り

cmd /c taskkill.exe /pid 9999 /F

ちょっと長いですが「9999」の部分にWindows上のプロセス番号を指定してください
上記の例では「/F」を指定していますがこれは強制終了のオプションです
killコマンドで言うところの「-9」にあたります
普通は指定しなくてもいいですが、プロセスが停止できない場合には指定してみてください

0 件のコメント:

コメントを投稿