IT

배치 파일을 Windows 서비스로 실행

lottoking 2020. 6. 16. 07:59
반응형

배치 파일을 Windows 서비스로 실행


하나의 응용 프로그램을 실행하려면 배치 파일을 시작해야합니다 (제트 시작, 라이브 로그 표시 등). 이 배치 파일이 실행중인 경우에만 응용 프로그램이 작동합니다. 따라서이 배치 파일을 실행하고 Windows 서버에서 로그 아웃하지 않아야합니다.

이 배치 파일을 서비스로 실행할 수 있습니까? 나는 비슷한 질문 에서 제안 중 하나를 실험하고 있습니다.


NSSM 은 완전히 무료이며 매우 간단하며 관리자 권한으로 명령 프롬프트 / 터미널을 실행합니다.

nssm install "YourCoolServiceNameLabel"

그러면 대화 상자가 나타나서 실행할 파일 위치를 선택할 수 있습니다.

제거

nssm remove "YourCoolServiceNameLabel"

시작시 실행되도록 예약 된 작업으로 간단하게 설정하지 않는 이유는 무엇입니까?


이를 위해 내장 된 Windows cmd가 있습니다 : sc create . nssm만큼 화려하지는 않지만 추가 소프트웨어를 다운로드 할 필요는 없습니다.

sc create "ServiceName" start= demand displayname= "DisplayName" binpath= [path to .bat file]

노트

  • start = demand는 서비스를 직접 시작해야 함을 의미합니다
  • 뒤에 공백이 필요합니다 =
  • 서비스 시작시 서비스가 적시에 응답하지 않는다는 오류가 발생했지만 서비스가 .bat를 성공적으로 실행 한 것이 분명했습니다. 아직 이것을 파헤 치지 않았지만이 스레드

    는 동일한 것을 경험하고 서비스를 설치하기 위해 nssm을 사용하여 해결했습니다.

Doug Currie는 RunAsService를 사용한다고 말합니다.

나의 과거 경험에서 당신은 당신이 생성 한 서비스가

  • 완전히 다른 환경 변수 세트가 있습니다
  • 권리 / 권한 문제에 대해주의 깊게 검사해야합니다
  • 어떤 종류의 입력을 요구하는 대화 상자가 열리면 혼란을 일으킬 수 있습니다

마지막 것이 여전히 적용되는지 확실하지 않습니다 ... 그것은 얼마 전에 내가 일한 프로젝트에서 큰 밤의 악몽이었습니다.


무료는 아니지만 (39 달러) FireDaemon 은 저에게 매우 효과적이었습니다. 배치 파일을 실행하지만 예약, 서비스 모니터링, GUI 또는 XML 기반 서비스 설치, 종속성, 환경 변수 및 로그 관리와 같은 추가되고 매우 유용한 기능이 많이 있습니다.

FireDaemon을 사용하여 JBoss 응용 프로그램 서버 ( run.bat ) 를 시작 했지만 FireDaemon 구성 기능이 풍부하여 배치 파일을 버리고 FireDaemon 서비스 정의에서 해당 명령의 의도를 재현 할 수 있음을 알게되었습니다.

이 서비스 (또는 기술적으로는 모든 서비스)를 관리 할 Windows 서버가 많은 경우 살펴볼 수있는 Trinity라는 SUPER FireDaemon도 있습니다.


추가 소프트웨어가 필요하지 않습니다. 작업 스케줄러-> 작업 만들기-> 숨김을 사용하십시오. 숨겨진 확인란은 왼쪽 하단에 있습니다. 로그인시 (또는 원하는 조건에 따라) 트리거하도록 작업을 설정하고 작업 탭에서 작업을 선택하십시오. 숨겨서 실행하면 서비스처럼 백그라운드에서 작업이 자동으로 실행됩니다.

또한 "사용자가 로그인했는지 여부에 관계없이"프로그램이 실행되도록 설정해야합니다. 그렇지 않으면 프로그램이 여전히 포 그라운드에서 실행됩니다.


AlwaysUp 은 배치 파일을 서비스로 쉽게 실행합니다. FireDaemon (위에서 언급 한)과 유사하며 무료는 아니지만 풍부한 기능 세트가 전문적인 환경의 자산이 될 수 있습니다.

행운을 빕니다!

참고 URL : https://stackoverflow.com/questions/415409/run-batch-file-as-a-windows-service

반응형