それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

CygwinのBashが終了できずに残るので、強制終了させる。

表題の通り。Cygwinのターミナルを終了しても、Cygwinのプロセスが終了しきれずに残ることがある。

強制終了させるWSHスクリプトを作ってあったことを思い出した。

kill_cygwin.js
function TerminateProcess( program_name ){
  var strComputer = ".";
  var name = "winmgmts:\\\\" + strComputer + "\\root\\CIMV2";
  var oWmis = GetObject(name);
  var cols = oWmis.ExecQuery("SELECT * FROM Win32_Process WHERE Caption = '"+ program_name +"'")
  var list = new Enumerator(cols)
  for(;!list.atEnd(); list.moveNext()){
    var proc = list.item();
    proc.terminate()
  }
}
//引数に与えたモノを全部Terminateしていく。
//Cygwin関係で、ゴミプロセスになりがちなモノ
TerminateProcess("bash.exe" );
TerminateProcess("sh.exe" );
TerminateProcess("ssh.exe" );
TerminateProcess("vim.exe" );
TerminateProcess("vim-nox.exe" );
TerminateProcess("conhost.exe" );
TerminateProcess("conftest.exe" );
TerminateProcess("screen.exe" );
TerminateProcess("screen-4.1.0.exe" );
TerminateProcess("mintty.exe" );


これをダブルクリックすれば、たいていのものは死んでくれる。