Windows 2008 Server에서 .bat 파일을 실행하는 서비스를 만드는 방법은 무엇입니까?


21

사용하여 서비스를 만들었습니다

sc create myService binpath=myservice.bat

그러나 시작하면 다음 오류 메시지와 함께 실패합니다.

[SC] StartService FAILED 1053:
    The service did not respond to the start or control request in a timely fashion.

Win2k3에서는 리소스 키트의 srvany.exe를 사용했지만 win2k8에 대한 리소스 키트는 없습니다. 당분간 나는 내 컴퓨터에 srvany.exe를 설치했지만 그것이 최선의 방법이라고 생각하지 않습니다.

감사!


1
배치 파일을 서비스로 실행할 수 있습니까? 예정된 작업이 더 나을까요? 실제 Windows 서비스를 사용하는 경우 OnLoad 이벤트가 몇 초 내에 반환되어야한다는 것을 알고 있습니다.
tsilb

답변:


9

물론 그런 서비스는 실행할 수 없습니다. 서버 2008에서 srvany를 사용해 보셨습니까? 내가 아는 한 s2k8에 대한 srvany의 '공식'버전은 없지만 항상 시도 할 수 있습니다.

편집 : 아, 잊었다! 또한 서비스가 아닌 응용 프로그램을 서비스로 실행하기 위해 FireDaemon을 사용합니다. 그러나 무료는 아니며 기능이 귀하의 요구에 비해 너무 많습니다.


내가 쓴 것은 다음과 같습니다.
abyx

흠 .. 이상해. 그냥 내 뇌를 통해 바로 필터링되었습니다. 죄송합니다. 어느 쪽이든, srvany는이 상황에서 최선의 방법으로 보입니다.
shylent

srvany는 2008 년에 작동합니다 (홈 서버에서 Winamp.exe를 서비스로 설치하고 실행하는 데 사용합니다) ...하지만 박쥐 파일 만 실행할 수는 없습니다.
Oskar Duveborn

24

NSSM을 사용하여 .BAT 또는 이전 .EXE 파일을 서비스로 실행하십시오. 거의 SRVANY를 대체하며 까다로운 응용 프로그램이 아닙니다.

http://iain.cx/src/nssm/

나는 당신과 같은 문제가 있었고 NSSM이 유일한 유틸리티였습니다.


3
전에는 들어 본 적이 없지만 유용한 도구 인 것 같습니다. 팁 고마워.
Skyhawk

그것은 나를 위해 일해 주셔서 감사합니다. 지정된 시간에 서비스를 중지하는 옵션을 여전히 찾고 있지만.
Ankit

8

작업 스케줄러 를 사용 하여 컴퓨터가 시작될 때마다 (사용자가 로그인했는지 여부에 관계없이) 작업을 실행합니다.


1
창을 숨기려면 시스템으로 실행하는 것이 마음에 들지 않으면 이것을 거나 읽으십시오
JonnyRaa

7

.BAT 파일 또는 이전 .EXE 파일을 서비스로 실행할 수 없습니다. Windows 서비스가 작동하지 않습니다. 당신은 같은 유틸리티 사용할 수있는 비 빠는 서비스 관리자 서비스로 임의의 프로그램을 실행 (NSSM) 또는 마이크로 소프트의 비 무료 SRVANY 유틸리티를,하지만 당신은 당신이 행동을 중지 매우 "우아한"하지 않을 수도 있습니다.


3

SC 명령은 서비스에 필요한 레지스트리 항목 만 추가합니다. 지정한 파일이 유효한 서비스 exe가 아닌 경우 서비스로 변환되지 않습니다.


2

from : technet 포럼의이 게시물 : http://social.technet.microsoft.com/Forums/en-US/winserverMigration/thread/98a97aee-c62b-4683-94ab-3777899cf7de/

해야 할 일이 있습니다 ...

이 게시 시점에는 Windows Server 2008 리소스 키트 도구가 없으므로 "Windows Server 2003 리소스 키트 도구"에서 "srvany.exe"를 가져 와서 Win2008 서버의 적절한 위치 (예 : C : \ Windows \ System32 \). "sc"를 사용하여 "srvany"를 시작하는 새 서비스를 작성하십시오 (예 : sc create MyService binPath = C : \ Windows \ System32 \ srvany.exe DisplayName = "My Custom Service") RegEdit 사용 : service (예 : HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ MyService \ Paramaters \) RegEdit을 사용하여 새로 작성된 "Parameters"키 내에 "Application"이라는 문자열 값을 작성하고 실행하려는 애플리케이션의 전체 경로를 입력하십시오. 서비스. (따옴표가 필요하지 않습니다.)

그리고 그렇게해야합니다.

참고 : 일부 응용 프로그램은 HKEY_LOCAL_MACHINE이 아닌 사용자 하이브에 설정을 저장하므로 응용 프로그램을 실행하여 구성한 다음 해당 사용자로 실행되도록 서비스를 구성해야합니다.


2

이것을 시도하십시오 ... 그것은 나를 위해 일했다 ..

sc create ServiceTest binpath= "C:\Windows\System32\cmd.exe /C C:\ServiceTest\Jenkins-Slave.bat"

그것은 나에게도 효과가 없었다! OP와 동일한 오류-적시에 시작되지 않았습니다.
Ravindra HV

Ditto-작동하지 않았습니다.
Spedge

0

나는이 문제에 걸려 넘어졌다. 다음은 Bat_To_Exe_Converter라는 도구입니다. .bat 파일을 .exe 파일로 변환하는 것은 매우 쉽습니다. 시도 해봐. 다운로더를 먼저 다운로드하면 Bat_To_Exe_Converter가 자동으로 다운로드됩니다. .exe를 통해 .bat 파일을 실행하는 서비스를 만드는 데 실제로 도움이되었습니다. http://download.cnet.com/Bat-To-Exe-Converter/3001-2069_4-10555897.html?spi=eae5ab48292cc101b5f0ec370cf99ad0


서버 결함에 오신 것을 환영합니다! 이 이론적으로 질문에 대답 할 수 있습니다 동안, 바람직 할 것이다 여기에 대한 대답의 본질적인 부분을 포함하고 참조 할 수 있도록 링크를 제공합니다.
Scott Pack


0

지갑에 도달하지 못하는 두 가지 다른 옵션을 찾았습니다.

당신은 당신의 프로그램을 가리키는 sc발사 srvany를 가질 수 있습니다 . (StackOverflow에서 할 수는 있지만 여기에 충분한 담당자가 없기 때문에 연결할 수없는 포럼 게시물이 있습니다.

원래 포스터가 사용한 단계는 다음과 같습니다.

  1. 사용하여 sc새로운 서비스를 만들기 위해 그 출시 srvany(예를 들어 sc create MyService binPath=C:\Windows\System32\srvany.exe DisplayName="My Custom Service")
  2. regedit를 사용 : 생성 Parameters서비스에 대한 키 (예를 들어 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MyService\Parameters\)
  3. 새로 작성된 Parameters키 내에 RegEdit :를 사용하여 라는 문자열 값을 작성 Application하고 서비스로 실행하려는 애플리케이션의 전체 경로를 입력하십시오. (따옴표가 필요하지 않습니다.)

그것이 약간의 핵처럼 보인다면 , .NET 서비스를 구축하여 프로세스를 시작할 수 있습니다. 몇 단계를 건너 뛰려면 일반적인 프로세스를 시작할 수있는 오픈 소스 .NET 서비스가 있습니다.

http://www.codeproject.com/KB/system/xyntservice.aspx

필요에 맞게 조정하지만 원하는 것을 대부분 사용할 수 있습니다.


그리고 당신이 언급 한 srvany입니까, Win2k8에 대해 지원되는 버전이없는 Win2k3의 것입니까?
LarsH
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.