“net start service”및“sc start”. 차이점은 무엇입니까?


70

명령 프롬프트 셸에서 두 가지 명령을 사용하여 서비스를 중지하고 시작할 수 있습니다.

  1. 넷 스타트 서비스 "일부 서비스"
  2. sc "일부 서비스"시작

이 명령들 사이의 차이점은 무엇입니까?

답변:


81

Windows NT에서 두 명령은 동일한 Service Manager에 액세스합니다. 차이점은 주로 사용자가 볼 수있는 부분에 있습니다.

  • net 사실 MS-DOS와 OS / 2 시절보다 더 오래되었습니다.

    scWindows NT에서만 나타납니다 (어떤 버전인지 확실하지 않음) .

  • net 서비스를 시작, 중지 및 일시 중지 만 할 수 있습니다.

    sc 고급 제어 기능이 있으며 상태를 쿼리하고 서비스를 생성 및 삭제하고 구성 및 보안을 변경할 수 있습니다. sc config beep start= demand

  • net 로컬에서만 작동합니다.

    sc 네트워크를 통해 사용할 수 있습니다 : sc \\snow start rpcapd

  • net 표시 이름을 허용합니다. net start "Windows Firewall"

    sc 항상 서비스 이름이 필요합니다. sc start SharedAccess


82

Grawity의 답변은 확실히 도움이되지만 http://cbfive.com/command-line-service-management-net-v-sc/에 자세히 설명 된 이러한 명령의 근본적인 차이점을 발견했습니다 . 특히,이 페이지에서는이 두 명령의 타이밍이 다릅니다 . "net"은 동기식이고 "sc"는 비동기식입니다.

SC는 컨트롤을 서비스로 보낸 다음 명령 프롬프트로 돌아갑니다. 이로 인해 일반적으로 SC START가 START_PENDING 상태로 서비스를 반환합니다. NET START는 명령 프롬프트에서 제어를 반환하기 전에 서비스가 완전히 시작된 상태가되기를 기다립니다 .

...

[L] SC START와 마찬가지로 SC STOP은 서비스가 중지때까지 기다리지 않으며 많은 서비스 중지 작업에 대해 종종 STOP_PENDING을 반환합니다. 반면에 NET STOP은 서비스가 중지 될 때까지 기다렸다가 명령 프롬프트로 돌아갑니다.

...

NET과 SC는 성공 조건으로 간주하는 것에 대한 아이디어가 다릅니다. SC가 성공했는지 여부를 묻는 질문은 "서비스에 중지 제어를 성공적으로 보냈습니까?"입니다. 서비스가 중지되었는지 여부에 관계없이 성공한 조건을 만족했습니다. NET에서 "중지하려고 시도한 서비스가 성공적으로 중지되었다고 반환 했습니까?"라는 질문을합니다. 그렇지 않은 경우 이유가 무엇이든 NET은 성공적인 조건에 실패합니다.


1
흥미로운 세부 사항입니다. 스크립팅 사례 (% ERRORLEVEL % 변수)에 대해 유용 할 수 있습니다. 감사.
Sopalajo de Arrierez

1
이 답변은 서비스 디렉토리가 완전히 중지되지 않았기 때문에 중지 한 후 서비스 디렉토리를 정리하려고 할 때 간헐적 인 스크립팅 오류가 발생하므로 매우 유용합니다.
johntrepreneur

"sc config"를 사용하고 싶습니다. 비동기식입니까? 작업이 실제로 완료 될 때까지 배치 파일을 기다리는 방법이 있습니까?
피터

3

그 가치에 대해서는 sc start / stop이 net start / stop보다 더 안정적이라는 것을 알았습니다. 때로는 net start / stop으로 인해 서비스가 시작 / 중지 상태에 머물러있는 반면 sc 시작 / 중지로 인해 아직 발생하지 않았습니다. 서비스가 kill (taskkill을 통해) 종료 된 경우 (예 : taskkill 후 net start로 서비스를 시작하려는 경우) net start / stop 증상이 더 자주 발생하는 경향이 있습니다.


2

서비스의 OnStart () 루틴이 너무 오래 걸리면 서비스 NET START에 중지 명령을 보내고 다음 오류를 리턴합니다.

ServiceName 서비스가 시작됩니다 ........

ServiceName 서비스를 시작할 수 없습니다.

서비스가 오류를보고하지 않았습니다.

NET HELPMSG 3534를 입력하면 추가 도움말을 볼 수 있습니다.

이것은 서비스가 시작되고 성공적으로 중지되었지만 발생합니다 !!

나는 또한이 게시물을 찾았습니다. 흥미 롭습니다 : 서비스를 시작할 수 없습니다

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.