Windows 서비스를 만드는 방법
때때로 컴퓨터에 로그인했는지 여부에 관계없이 계속 실행하려면 앱이나 스크립트가 필요합니다. 포트를 모니터링 하는 PowerShell 스크립트(PowerShell script to monitor ports) 또는 홈 네트워크의 페이지를 호스팅하는 웹 서버일 수 있습니다(web server hosting a page on your home network) .
요점은 컴퓨터가 켜져 있는 동안 프로세스, 스크립트 또는 프로그램을 실행하려면 Windows 서비스(Windows Service) 를 만들어야 한다는 것 입니다.
Windows 서비스를 생성하려면 무엇이 필요합니까?(What Do I Need to Create a Windows Service?)
Windows 10 에서 (Windows 10)Windows 서비스 를 만들려면 몇 가지 전제 조건이 있습니다.
- 컴퓨터에 대한 관리자(Administrator) 액세스
- 서비스로 실행할 항목( PowerShell Script , 프로그램 등)
- Non- Sucking Service Manager ( NSSM ) 설치
비 빠는 서비스 관리자 란 무엇입니까?(What Is the Non-Sucking Service Manager?)
예, 설명 없이는 그런 이름을 삭제할 수 없습니다. 물론 이름은 불행하지만 정확합니다. NSSM ( Non- Sucking (NSSM)Service Manager )은 틀림없이 매우 안정적이고 구성 가능한 Windows 서비스 를 만드는 가장 쉬운 방법 입니다. 또한 무료이며 오픈 소스 소프트웨어(Open Source Software) (OSS)입니다.
NSSM은 Windows 명령 프롬프트 또는 (Windows Command Prompt)GUI (그래픽 사용자 인터페이스 ) 를 통해 사용할 수 있습니다 . 즉, 누구나 사용할 수 있습니다. NSSM은 Windows 2000 을 포함한 모든 버전의 Windows 에서 사용할 수 있습니다 . 32비트와 64비트(32-bit and 64-bit) 버전 이 있습니다. 64비트 컴퓨터를 사용하는 경우 먼저 해당 버전을 사용해 보십시오. 작동하지 않으면 32비트 버전으로 돌아가십시오.
웹사이트 에서 NSSM 을 다운로드 하거나 (download NSSM from the website)Git(clone NSSM from Git) 에서 NSSM을 복제하거나 Chocolatey로 NSSM을 설치할 수(install NSSM with Chocolatey) 있습니다. Chocolatey는 Windows용 패키지 관리자입니다(Chocolatey is a package manager for Windows) . 어떤 경로를 선택하느냐에 따라 설치(Installation) 방법이 달라집니다. NSSM 의 지침을 참조하십시오 . (Please)이 예에서는 NSSM 웹 사이트에서 다운로드하여 (NSSM)C:\WINDOWS\system32 WINDOWSsystem32 에 설치합니다 .
NSSM으로 Windows 서비스 생성(Create a Windows Service With NSSM)
이 예에서는 PowerShell 스크립트 에서 서비스를 만들어 (PowerShell script)CPU 평균 로드 백분율(CPU average load percentage) 을 기록 합니다.
- 이 스크립트 를 다른 사람이 액세스할 가능성이 없는 위치에 log-CPULoadPercentage.ps1 로 복사하여 저장합니다 . C:/Scripts 디렉토리를 생성하고 거기에 저장해 보십시오. 또한 Logs(Logs) 라는 Scripts 폴더를 만듭니다 . 스크립트 경로는 C:/Scripts/log-CPULoadPercentage.ps1 입니다. 나중에 필요합니다.
참고(Note) : 아래의 모든 행 뒤에 # 기호는 주석이며 스크립트에 영향을 주지 않습니다.
CLS #Optional. I like to use this to clear the terminal when testing. #Make sure you have a folder called Logs in the same directory as this script #The log is where the records will be stored. Start-Transcript -Path "$PSScriptRoot\Logs\log-CPULoadPercentage-$(get-date -f yyyy-MM-dd).txt" -Append #While loop keeps it running until manually stopped While ($True){ #Creates a timestamp to know when the measurement was taken $timeStamp = get-date -f yyyy-MM-h:mm:ss #Gets the average load percentage at that time, then waits 5 seconds to do it again. $cpuLoadPercent = Get-CimInstance win32_processor | Measure-Object -Property LoadPercentage -Average | Select-Object Average;Start-Sleep -Seconds 5 #Isolates just the average so there isn't a weird @{Average=13} string $cpuLoadPercent = $cpuLoadPercent.Average #writes results to screen, or in this case to the log Write-Host "$timeStamp CPU Load Percentage $cpuLoadPercent" } Stop-Transcript
- 이 작업은 Windows 명령 프롬프트(Windows Command Prompt) 또는 PowerShell에서 수행할 수 있습니다. (PowerShell. )관리자로 엽니다(Open it as Administrator) .
- nssm install logCPUAvg 명령을 입력 하고 실행합니다. NSSM 서비스 설치 프로그램(NSSM service installer) 창이 열립니다.
- (Click)경로:(Path:) 필드 옆에 있는 줄임표 버튼을 클릭 하고 일반적으로 C:\Windows\System32\powershell.exe 로 이동합니다 . powershell.exe를 선택합니다. 경로:(Path:) 및 시작 디렉터리:(Startup directory:) 필드가 자동으로 채워집니다.
- 인수:(Arguments:) 필드 에 다음을 입력합니다 . -ExecutionPolicy Bypass -NoProfile -File “C:\PathToScript\get-Script.ps1” , 여기서 마지막 부분은 PowerShell 스크립트의 경로와 스크립트 이름입니다.
- 세부 정보(Details) 탭을 선택합니다 . 표시 이름:(Display name: ) 필드 에 Windows 서비스(Services) 관리자에 표시할 서비스를 입력 합니다. 그런 다음 설명:(Description:) 필드에 수행할 작업을 입력합니다. 시작 유형:(Startup type: ) 자동 ,(Automatic) 자동 (지연된 시작)(Automatic (Delayed Start)) , 수동(Manual) 또는 비활성화(Disabled) 로 설정할 수 있습니다 . 이 연습에서는 자동(Automatic) 이 좋습니다.
- 로그온(Log on ) 탭 을 선택합니다 . 이 계정(This account) : 라디오 버튼을 선택 하고 서비스를 실행할 계정과 암호를 입력합니다. 서비스를 실행할 계정을 선택해야 합니다. 이상적으로는 이 서비스를 실행하기 위한 Windows 계정이 생성됩니다. 이 계정의 권한은 서비스에서 수행해야 하는 작업으로만 제한되어야 합니다. 로컬 시스템 계정(Local System account) 을 선택할 수 있지만 보안상의 이유로 권장하지 않습니다.
서비스를 사용자 정의하는 데 사용할 수 있는 몇 가지 다른 탭이 있습니다. 이 연습에서는 해당 탭의 기본값으로 충분합니다. 서비스 설치(Install service ) 버튼을 선택 합니다.
- Service “logCPUAvg” installed successfully! 것을 볼 수 있습니다 ! 창문. 확인(OK) 을 선택 하여 닫습니다. 이상으로 설치를 마칩니다.
- Windows 서비스 관리자(Windows Services Manager ) 를 열고 서비스가 있는지 확인하십시오.
- 서비스를 실행(Run) 하여 실행되도록 합니다.
- 이 서비스가 실행 중인지 확인하려면 파일 탐색기(File Explorer ) 를 사용하여 로그가 저장되어야 하는 위치로 이동하여 존재하는지 확인하십시오.
nssm-check-log.png
NSSM을 사용하여 Windows 서비스 제거(Removing a Windows Service With NSSM)
더 이상 CPU 부하를 모니터링할(monitor your CPU) 필요가 없으므로 서비스를 제거하고 싶을 수도 있습니다. 다행히도 NSSM 은 이를 쉽게 만듭니다.
- Windows 서비스 관리자(Windows Services Manager) 에서 서비스를 중지합니다. 로그 CPU 평균 로드(Log CPU Average Load ) 서비스를 선택한 다음 도구 모음에서 사각형 중지 버튼을 선택하거나 왼쪽에 있는 서비스 중지 링크를 선택하여 이 작업을 수행합니다.(Stop the service)
- Windows 명령 프롬프트(Windows Command Prompt ) 또는 PowerShell 을 관리자로 엽니다 .
- nssm remove logCPUAvg 명령을 입력하고 명령 을 실행합니다.
- NSSM 에서 확인을 요청할 것입니다. 예(Yes) 를 선택 합니다.
- Service “logCPUAvg” removed successfully! 것을 볼 수 있습니다 ! 확인. 확인(OK) 을 선택 하면 완료됩니다.
그게 다야. 서비스 관리자를 확인하여 서비스가 더 이상 존재하지 않는지 확인하는 것이 좋습니다. 서비스가 계속 표시되면 화면을 새로 고쳐야 할 수 있으며 사라집니다.
서비스는 항상 실행해야 하는 앱 또는 스크립트를 실행하거나, 실패할 경우 자체적으로 다시 시작하거나, 현재 사용자와 다른 권한이 필요한 훌륭한 방법입니다. 이러한 모든 작업을 수행하는 데 앱이나 스크립트가 필요하지 않은 경우 대신 예약된 작업을 사용하는(using a Scheduled Task) 것이 좋습니다.
Related posts
사용하거나 사용 Windows 10에서 해제 IP Helper Service하는 방법
DNS Client Service Windows 10에서 회색으로 표시되면 DNS Client Service을 활성화하는 방법
어떻게 Windows 10에 해제 Windows Insider Service에
Bonjour Service Windows 10은 무엇입니까?
Fix System Service Exception Error Windows 10
Windows 10 ICC Profile를 사용하여 Color Profile을 설치하는 방법
Waasmedic 서비스란 무엇이며 안전한가요?
Windows 10에서 Network Sniffer Tool PktMon.exe을 사용하는 방법
Microsoft Remote Desktop Assistant Windows 10
Best Windows 10 무료 Molecular Modeling software
Windows 10의 인 에이블먼트 패키지는 무엇입니까?
Windows 10 Hello Face Authentication에서 Enhanced Anti-Spoofing 사용
Windows 10 New version 20H2 October 2020 Update
Chrome에서 Reader Mode을 비활성화하거나 활성화하는 방법 Windows 10
무료 Battery Limiter software Windows 10
Create Windows 10 용 PeperNote과 간단한 노트
Windows 10에서 Feature Updates의 Safeguards를 비활성화하는 방법
Windows 10 컴퓨터에서 .aspx 파일을 여는 방법
Windows 10에서 Microsoft Edge에서 Google SafeSearch을 집행하는 방법
Windows 10에서 Taskbar Hide or Show Windows Ink Workspace Button