[windows] 배치 파일을 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도 있습니다.


답변

Windows 2019 Server에서는 다음 명령을 사용하여 Minecraft Java 서버를 실행할 수 있습니다.

sc create minecraft-server DisplayName = “minecraft-server”binpath = “cmd.exe /CC:\Users\Administrator\Desktop\rungui1151.lnk”type = 자체 시작 = 자동

.lnk 파일은 배치 파일에 대한 표준 Windows 바로 가기입니다.

— .bat 파일이 시작됩니다 —

java -Xmx40960M -Xms40960M -d64 -jar minecraft_server.1.15.1.jar

— .bat 파일이 종료됩니다 —

이 모든 이유는 다음과 같습니다.

서비스가 폴더에서 시작하는 방법을 모릅니다.

cmd.exe가 폴더에서 시작하는 방법을 모른다

서비스를 시작하면 “적시 방식”오류가 발생하지만 로그 파일은 서버가 실행 중임을 나타냅니다.

서버를 종료 해야하는 경우 작업 관리자로 이동하여 백그라운드 프로세스에서 서버 java를 찾아서 종료하거나 / stop 명령을 사용하여 게임에서 서버를 종료하거나 다른 프로그램 / 서버의 경우 다음 방법을 사용하십시오 서버와 관련이 있습니다.