“Net start servisi” ve “sc start”. Fark ne?


70

Komut İstemi Kabuğu'ndaki iki komut kullanılarak hizmetler durdurulabilir ve başlatılabilir.

  1. net başlangıç ​​servisi "bazı servis"
  2. sc "bazı hizmet" başlatmak

bu komutlar arasındaki fark nedir?

Yanıtlar:


81

Windows NT'de, her iki komut da aynı Hizmet Yöneticisine erişir. Fark, çoğunlukla kullanıcı tarafından görülebilen kısımdadır:

  • net daha eski - aslında MS-DOS ve OS / 2 günlerinden.

    scyalnızca Windows NT ile çıktı (hangi sürümün kullanıldığından emin değilsiniz) .

  • net yalnızca hizmetleri başlatabilir, durdurabilir ve duraklatabilir.

    sc daha gelişmiş denetimlere sahip, durumu sorgulayabilir, hizmet yaratabilir ve silebilir, yapılandırma ve güvenliklerini değiştirebilir: sc config beep start= demand

  • net sadece yerel olarak çalışır.

    sc ağ üzerinden kullanılabilir: sc \\snow start rpcapd

  • net görünen adları kabul eder: net start "Windows Firewall"

    sc her zaman bir servis adı gerektirir: sc start SharedAccess


82

Grawity'nin cevabı kesinlikle faydalıdır, ancak bu komutlar arasında http://cbfive.com/command-line-service-management-net-v-sc/ adresinde ayrıntılı olarak açıklanan temel bir fark buldum . Özellikle, bu sayfa bu iki komutun zamanlamalarında farklılık gösterdiğini belirtir : "net" eşzamanlı ve "sc" eşzamansızdır.

SC denetimi servise gönderir ve ardından komut istemine geri döner. Bu genellikle SC START'ın hizmeti START_PENDING durumunda döndürmesiyle sonuçlanır. NET START , komut isteminde kontrolü geri göndermeden önce tamamen başlatılmış bir duruma gelmeye başlayan hizmeti bekleyecektir .

...

[L] ike SC START, SC STOP servisin durmasını beklemez ve orada birçok servis durdurma işlemi için sıklıkla STOP_PENDING döndürür. NET STOP ise komut istemine geri dönmeden önce servisin durmasını bekleyecektir .

...

NET ve SC, başarı koşulları olarak gördükleri konusunda farklı fikirlere sahiptir. SC'nin başarılı olup olmadığına karar vermesi sorusu “Hizmete başarılı bir şekilde durma kontrolü gönderdim mi?” Demişti. Olursa, hizmetin durup durmadığına bakmaksızın başarılı durumdan memnun kaldım. NET “Durmaya çalıştığım hizmet, başarılı bir şekilde durduğunu döndürdü mü?” Sorusunu soruyorsa, durumu yerine getirdi. Olmadıysa, nedeni ne olursa olsun, NET başarılı koşulu yerine getiremezse


1
Bu ilginç bir detay. Komut dosyası oluşturma vakalarını bilmek faydalı olabilir (% ERRORLEVEL% değişkeni). Teşekkürler.
Sopalajo de Arrierez

1
Bu cevap benim için çok yararlı, çünkü tamamen durdurulmadığı için durdurduktan sonra servis dizinini temizlemeye çalışan aralıklı komut dosyası hataları yaşıyorum.
johntrepreneur

"sc config" kullanmak istiyorum, bu da zaman uyumsuz mu? toplu iş dosyasının görev gerçekten tamamlanıncaya kadar beklemesinin bir yolu var mı?
Peter,

3

Ne pahasına olursa olsun, sc start / stop'u net start / stop'tan daha güvenilir buluyorum. Bazen net start / stop, hizmetin Başlatma / Durdurma durumunda kalmasına neden olurken, bu daha önce sc start / stop ile başıma gelmedi. Net start / stop semptomu, servis öldürüldüğünde (görev sırası ile) daha sık meydana gelme eğilimindedir; örneğin, görevden sonra net start ile servise başlamaya çalışmak.


2

Bir hizmetin OnStart () yordamı çok uzun sürerse NET START, servise bir stop komutu gönderir ve aşağıdaki hatayı verir:

ServiceName hizmeti başlıyor ........

ServiceName hizmeti başlatılamadı.

Hizmet bir hata bildirmedi.

NET HELPMSG 3534 yazarak daha fazla yardım alabilirsiniz.

Hizmet başarıyla başlatılmış ve durdurulmuş olmasına rağmen bu olur!

Bu yazıyı burada da buldum, ilginç olabilir: Servis başlatılamadı

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.