1. ホーム
  2. powershell

プロセスが実行されているかどうかを正しく確認し、停止する方法

2023-10-03 22:01:24

質問

FireFox などのプロセスが実行されているかどうかを判断し、停止する正しい方法は何ですか?

いろいろ調べてみたのですが、一番良い方法はこれでした。

if((get-process "firefox" -ea SilentlyContinue) -eq $Null){ 
        echo "Not Running" 
}

else{ 
    echo "Running"
    Stop-Process -processname "firefox"
 }

これは理想的な方法なのでしょうか?そうでない場合、正しい方法は何でしょうか?

どのように解決するのですか?

あなたのやり方では、プロセスを2回問い合わせることになります。また、Lynn は、最初に親切であることについて良い点を挙げています。私なら、おそらく次のようなことを試してみるでしょう。

# get Firefox process
$firefox = Get-Process firefox -ErrorAction SilentlyContinue
if ($firefox) {
  # try gracefully first
  $firefox.CloseMainWindow()
  # kill after five seconds
  Sleep 5
  if (!$firefox.HasExited) {
    $firefox | Stop-Process -Force
  }
}
Remove-Variable firefox