IIS AppPool 작업자 프로세스 ID를 가져오는 방법
모니터링 서비스에서 웹 사이트가 다운되었음을 감지할 때 자동으로 실행되는 PowerShell 스크립트가 있습니다.AppPool을 중지하도록 되어 있습니다(사용).Stop-WebAppPool -name $AppPool;
), 실제로 중지될 때까지 기다렸다가 다시 시작합니다.
때때로 프로세스가 실제로 중지되지 않고 오류로 인해 표시됩니다.
Cannot Start Application Pool:
The service cannot accept control messages at this time.
(Exception from HRESULT: 0x80070425)"
다시 시작하려고 할 때.
중지하는 데 특정 초 이상이 걸린 경우(일반적으로 얼마나 걸리는지 확인하기 위해 몇 번의 중지 시간을 설정한 후 해당 시간을 선택합니다), 프로세스를 종료하고 싶습니다.
다음을 수행하여 AppPool에서 작업자가 사용하는 프로세스 목록을 가져올 수 있음을 알고 있습니다.dir IIS:\AppPools\MyAppPool\WorkerProcesses\
,
Process ID State Handles Start Time
---------- ----- ------- ----------
7124 Running
어떻게 하면 프로세스 ID를 캡처해서 죽일 수 있을지 모르겠어요
프로세스 ID가 실제로 종료할 프로세스 ID인 경우 다음을 수행할 수 있습니다.
$id = dir IIS:\AppPools\MyAppPool\WorkerProcesses\ | Select-Object -expand processId
Stop-Process -id $id
또는
dir IIS:\AppPools\MyAppPool\WorkerProcesses\ | % { Stop-Process -id $_.processId }
서버의 명령 프롬프트에서 실행 중인 AppPool PID 목록에 대해 다음을 수행하여 태스크킬 또는 태스크 관리자로 해당 PID를 제거할 수 있습니다.
cd c:\windows\system32\inetsrv
appcmd list wp
taskkill /f /pid *PIDhere*
(Stej의 솔루션에 캐시 문제가 있을 수 있으므로 Roman의 의견에 대한 답변 추가)
웹 서버에서 Powershell을 Administrator로 열고 다음을 실행합니다.
gwmi -NS 'root\WebAdministration' -class 'WorkerProcess' | select AppPoolName,ProcessId
다음과 같은 내용이 표시됩니다.
AppPoolName ProcessId
----------- ---------
AppPool_1 8020
AppPool_2 8568
그런 다음 작업 관리자를 사용하여 해당 작업을 종료하거나 Powershell에서 사용할 수 있습니다.
Stop-Process -Id xxxx
Get-WmiObject를 가져오는 경우 : 네임스페이스 루트/Web관리에서 개체를 가져올 수 없습니다. 잘못된 네임스페이스를 사용한 경우 다음을 사용하여 IIS 관리 스크립트 및 도구 기능을 사용하도록 설정해야 합니다.
ipmo ServerManager
Add-WindowsFeature Web-Scripting-Tools
언급URL : https://stackoverflow.com/questions/7014536/how-to-get-iis-apppool-worker-process-id
'programing' 카테고리의 다른 글
터치스크린용 jQuery UI 'draggable()' 디바지블을 만들려면 어떻게 해야 합니까? (0) | 2023.08.29 |
---|---|
ASP에서 DbContext를 확인할 수 없습니다.NET Core 2.0 (0) | 2023.08.29 |
printf를 사용하여 64비트 정수를 교차 플랫폼으로 인쇄 (0) | 2023.08.29 |
mysql - IF 문 내에서 코드 블록을 실행하는 방법(프로시저에서는 실행하지 않음) (0) | 2023.08.29 |
요소가 부모의 자식인지 확인 (0) | 2023.08.29 |