Windows 2008 Server'da .bat dosyası çalıştıran bir hizmet nasıl oluşturulur?


21

Hizmeti kullanarak oluşturdum

sc create myService binpath=myservice.bat

Ancak başlattığımda, aşağıdaki hata iletisiyle başarısız oluyor:

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

Win2k3'te Kaynak setindeki srvany.exe dosyasını kullandım, ancak win2k8 için kaynak kiti yok. Şimdilik makineme srvany.exe'yi kurdum, ancak bunun en iyi yol olduğunu sanmıyorum.

Teşekkürler!


1
Bir toplu iş dosyasını hizmet olarak çalıştırabilirsiniz? Zamanlanmış bir görev daha iyi olmaz mıydı? Gerçek bir Windows Hizmeti kullanıyorsanız, OnLoad olayının birkaç saniye içinde geri dönmesi gerektiğini biliyorum.
tsilb

Yanıtlar:


9

Elbette böyle bir servisi çalıştıramazsınız. 2008 sunucusunda srvany kullanmayı denediniz mi? Bildiğim kadarıyla s2k8 için srvany 'resmi' sürümü yok, ama her zaman deneyebilirsin, değil mi?

EDIT: Ah, unuttum! Ayrıca, hizmet dışı uygulamaları hizmet olarak çalıştırmak için FireDaemon kullanıyoruz. Yine de ücretsiz değildir ve işlevselliği ihtiyaçlarınız için biraz fazladır.


Ben de öyle yazdım.
abyx

hmm .. bu çok garip. Sadece beynimden süzüldü. Üzgünüm. Her iki durumda da, srvany bu durumda yapılacak en iyi şey gibi görünüyor.
shylent

srvany 2008'de çalışıyor (Winamp.exe'yi ev sunucusunda bir hizmet olarak kurmak ve çalıştırmak için kullanıyorum) ... ama sadece bir yarasa dosyasını çalıştıramazsınız.
Oskar Duveborn

24

Bir .BAT'ı veya herhangi bir eski .exe dosyasını hizmet olarak çalıştırmak için NSSM'yi kullanın. Neredeyse SRVANY'nin yerine geçmiştir ve hiçbir fırfırlama uygulaması yoktur.

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

Seninle aynı problemi yaşadım ve NSSM çalışan tek yardımcı programdı.


3
Bunu daha önce duymamıştım, ancak değerli bir araç gibi görünüyor. Bahşiş için teşekkürler.
Skyhawk

Teşekkürler benim için çalıştı. Yine de, servisi belirli bir zamanda durdurmak için seçenekler arıyorum.
Ankit

8

Bilgisayar başladığında görevi çalıştırmak için Görev Zamanlayıcı'yı kullanıyoruz (bir kullanıcı oturum açmış olsun veya olmasın)


1
gizlemek pencere bunu okuyun veya bu sisteme olarak çalışan memnun değilseniz
JonnyRaa

7

Yalnızca bir .BAT dosyasını ya da herhangi bir eski .exe dosyasını hizmet olarak çalıştıramazsınız. Windows hizmetleri sizin için çalışmıyor. Sen gibi bir yardımcı program kullanabilirsiniz olmayan Sucking Servis Yöneticisi bir hizmet olarak keyfi bir programı çalıştırmak için (NSSM) ya da Microsoft'un özgür olmayan SRVANY fayda, ama sen davranışı durdurma çok "zarif" alamadım bulabilirsiniz.


3

SC komutu sadece bir servis için gerekli kayıt defteri girişlerini ekler - belirttiğiniz dosya geçerli bir servis exe değilse, onu birine dönüştürmez.


2

from: bu forumda teknik forumlar: http://social.technet.microsoft.com/Forums/en-US/winserverMigration/thread/98a97aee-c62b-4683-94ab-3777899cf7de/

İşte ne yapmalı ...

Bu gönderi sırasında, Windows Server 2008 Kaynak Seti Araçları yok, bu nedenle "Windows Server 2003 Kaynak Seti Araçları" ndan "srvany.exe" dosyasını alın ve Win2008 sunucunuzdaki uygun bir yere kopyalayın (örn. C: \ Windows \ System32 \). "Srvany" yi başlatan yeni bir hizmet oluşturmak için "sc" kullanın (örneğin, sc yarat MyService binPath = C: \ Windows \ System32 \ srvany.exe DisplayName = "Özel Hizmetim") RegEdit'i kullanma: service (örn. HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ MyService \ Paramaters \) RegEdit'i kullanarak: yeni oluşturulan "Parametreler" anahtarının içinde "Uygulama" adlı bir dize değeri oluşturun ve çalıştırmak istediğiniz uygulamanın tam yolunu girin servis. (Hiçbir teklif gerekli değildir.)

Ve bu yapmalı.

Not: Bazı uygulamalar ayarlarını HKEY_LOCAL_MACHINE altında değil bir kullanıcı kovanında saklar, bu nedenle uygulamayı yapılandırmak için uygulamayı çalıştırmanız ve ardından hizmeti bu kullanıcı olarak çalışacak şekilde yapılandırmanız gerekir.


2

Bunu dene ... benim için çalıştı ..

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

Benim için de işe yaramadı! OP ile aynı hata - Zamanında başlamadı.
Ravindra HV,

Aynen - işe yaramadı.
15’i hızlandır

0

Bu şeyin üzerine tökezledim. İşte Bat_To_Exe_Converter adlı bir araç. .Bat dosyalarını .exe dosyalarına dönüştürmek çok kolaydır. Dene. Önce indiriciyi indirin, ardından Bat_To_Exe_Converter otomatik olarak indirilir. .Bat dosyamı .exe ile çalıştıran hizmet yaratmamda gerçekten çok yardımcı oldu. http://download.cnet.com/Bat-To-Exe-Converter/3001-2069_4-10555897.html?spi=eae5ab48292cc101b5f0ec370cf99ad0


Sunucu Arızasına Hoşgeldiniz! Bu soruyu teorik olarak cevaplayabilse de , cevabın temel kısımlarını buraya eklemek ve referans için bağlantıyı sağlamak tercih edilir.
Scott Pack,


0

Cüzdanına ulaşmana izin vermeyecek iki seçenek daha buldum.

Daha sonra programınıza işaret eden sclansmanı yapabilirsiniz srvany. (Bağlantı kuramadığım bir forum gönderisi var çünkü StackOverflow - grumble'da olmasına rağmen burada yeterince uzmanım yok)

Orijinal posterin kullandığı adımlar:

  1. scBaşlatılan yeni bir hizmet oluşturmak için kullanın srvany(örn. sc create MyService binPath=C:\Windows\System32\srvany.exe DisplayName="My Custom Service")
  2. RegEdit'i kullanmak: Parametersservisiniz için bir anahtar oluşturun (örn. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MyService\Parameters\)
  3. RegEdit'i kullanarak: yeni oluşturulan Parametersanahtarın içinde, çağrılan bir dize değeri oluşturun Applicationve hizmet olarak çalıştırmak istediğiniz uygulamanın tam yolunu girin. (Hiçbir teklif gerekli değildir.)

Bu biraz kesmek gibi görünüyorsa , işleminizi başlatmak için bir .NET servisi oluşturabilirsiniz. Birkaç adımı atlamak istiyorsanız, genel işlemleri başlatabilen açık kaynaklı bir .NET servisi:

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

Gereksinimlerinize göre çimdik ama kutudan ne istersen onu yapacaktır.


Bahsettiğiniz srvany, Win2k3'ten Win2k8 için desteklenen bir sürümü bulunmayan sürüm mü?
LarsH
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.