.NET開発環境で特定の名前のプロセスを強制終了させたい!
概要
例として、起動しているFireFoxの全てのプロセスを強制終了させるプログラムを示す。
仕様書
環境
- .NET Core 3.1
手順書
下記は、起動しているFireFoxの全てのプロセスを強制終了させるプログラムのコードです。
using System;
namespace task_kill
{
class Program
{
static void Main(string[] args)
{
System.Diagnostics.Process[] ps = System.Diagnostics.Process.GetProcessesByName("firefox");
foreach (System.Diagnostics.Process p in ps)
{
try
{
p.Kill();
Console.WriteLine("Task Kill!\n");
}
catch (Exception e)
{
Console.WriteLine($"Error: {e.Message}");
}
}
}
}
}
解説
System.Diagnostics.Process.GetProcessesByName
関数の第1引数に強制終了させたいプロセスの名前を渡すとプロセスのリストが返ってくる。
プロセスの名前の調べ方はいろいろある。タスクマネージャー(Ctrl + Shift + Esc
)の詳細にある名前の列の項目の末尾から.exe
を除いた文字列がプロセスの名前となる。
Kill
関数でプロセスの強制終了をおこなう。
まとめ(感想文)
Seleniumで定期的に自動処理してたんだけど、たまにブラウザドライバーのプロセスが残っちゃってて、それを定期的に強制終了するためにこの記事のようなプログラムを使ってます。