pengembangan-web-mp.com

Bagaimana cara membuat layanan yang menjalankan file .bat di Windows 2008 Server?

Saya telah membuat layanan menggunakan

sc create myService binpath=myservice.bat

Tetapi ketika saya memulainya, gagal dengan pesan kesalahan berikut:

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

Pada Win2k3 saya menggunakan srvany.exe dari Resource kit, tetapi tidak ada resource kit untuk win2k8. Untuk saat ini saya telah menginstal srvany.exe di komputer saya, tetapi saya rasa itu bukan cara terbaik untuk melakukannya.

Terima kasih!

21
abyx

Tentu saja Anda tidak dapat menjalankan layanan seperti itu. Apakah Anda mencoba menggunakan srvany di server 2008? Sejauh yang saya tahu tidak ada versi 'resmi' dari srvany untuk s2k8, tetapi Anda selalu dapat mencoba, bukan?

EDIT: Oh, saya lupa! Kami juga menggunakan FireDaemon untuk menjalankan aplikasi non-layanan sebagai layanan. Padahal, itu tidak gratis dan fungsinya agak terlalu banyak untuk kebutuhan Anda.

9
shylent

Gunakan NSSM untuk menjalankan .BAT atau file .EXE lama sebagai layanan. Ini hampir merupakan pengganti SRVANY dan aplikasi tanpa embel-embel.

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

Saya memiliki masalah yang sama dengan Anda, dan NSSM adalah satu-satunya utilitas yang berfungsi.

24

Kami menggunakan Penjadwal Tugas untuk menjalankan tugas setiap kali komputer dimulai (terlepas dari pengguna yang masuk atau tidak)

8
Korayem

Anda tidak bisa hanya menjalankan file .BAT atau file .EXE lama sebagai layanan. Layanan Windows tidak berfungsi untuk Anda. Anda dapat menggunakan utilitas seperti Manajer Layanan tidak mengisap (NSSM) atau utilitas SRVANY Microsoft tidak bebas untuk menjalankan program sewenang-wenang sebagai layanan, tetapi Anda mungkin mendapati bahwa Anda tidak mendapatkan yang sangat " perilaku berhenti anggun.

7
Evan Anderson

Perintah SC hanya menambahkan entri registri yang diperlukan untuk suatu layanan - jika file yang Anda tentukan bukan exe layanan yang valid, ia tidak akan mengubahnya menjadi satu.

3
Whisk

coba ini ... itu berhasil untuk saya ..

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

dari: posting ini di forum technet: http://social.technet.Microsoft.com/Forums/en-US/winserverMigration/thread/98a97aee-c62b-4683-94ab-3777899cf7de/

Inilah yang harus dilakukan ...

Pada saat posting ini, tidak ada Alat Kit Sumber Daya Windows Server 2008, jadi dapatkan "srvany.exe" dari "Alat Kit Sumber Daya Windows Server 2003" dan salin ke lokasi yang sesuai di server Win2008 Anda (mis. C:\Windows\System32 \). Gunakan "sc" untuk membuat layanan baru yang meluncurkan "srvany" (mis. Sc buat MyService binPath = C:\Windows\System32\srvany.exe DisplayName = "Layanan Kustom Saya") Menggunakan RegEdit: buat kunci "Parameter" untuk Anda service (mis. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MyService\Paramaters \) Menggunakan RegEdit: di dalam kunci "Parameter" yang baru dibuat, buat nilai string yang disebut "Aplikasi" dan masukkan path lengkap ke aplikasi yang ingin Anda jalankan sebagai sebuah layanan. (Tidak perlu mengutip.)

Dan itu harus dilakukan.

Catatan: beberapa aplikasi menyimpan pengaturannya di Hive pengguna, bukan di bawah HKEY_LOCAL_MACHINE, jadi Anda harus menjalankan aplikasi untuk mengkonfigurasinya, dan kemudian mengkonfigurasi layanan agar berjalan sebagai pengguna.

2
user1977194

saya menggunakan schtasks Windows.

anda bisa merujuk ini. https://technet.Microsoft.com/en-us/library/cc725744.aspx#BKMK_hours

0
Yit Ming

Saya menemukan dua opsi lain yang tidak ingin Anda raih untuk dompet Anda.

Anda dapat memiliki sc launch srvany yang kemudian menunjuk ke program Anda. (ada posting forum yang tidak bisa saya tautkan karena saya tidak punya cukup rep di sini meskipun saya lakukan di StackOverflow - menggerutu)

Berikut adalah langkah-langkah yang digunakan oleh poster asli:

  1. Gunakan sc untuk membuat layanan baru yang meluncurkan srvany (mis. sc create MyService binPath=C:\Windows\System32\srvany.exe DisplayName="My Custom Service")
  2. Menggunakan RegEdit: buat kunci Parameters untuk layanan Anda (mis. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MyService\Parameters\)
  3. Menggunakan RegEdit: di dalam kunci Parameters yang baru dibuat, buat nilai string yang disebut Application dan masukkan path lengkap ke aplikasi yang ingin Anda jalankan sebagai layanan. (Tidak perlu mengutip.)

Jika itu tampak seperti retasan , maka Anda dapat membangun layanan .NET untuk meluncurkan proses Anda. Jika Anda ingin melewati beberapa langkah, berikut ini adalah layanan open source .NET yang dapat meluncurkan proses umum:

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

Tweak untuk kebutuhan Anda, tetapi itu akan melakukan sebagian besar dari apa yang Anda inginkan di luar kotak.

0
databyte

Saya menemukan hal ini. Berikut adalah alat yang disebut Bat_To_Exe_Converter. Sangat mudah untuk mengonversi file .bat menjadi file .exe. Cobalah. Unduh pengunduh terlebih dahulu dan itu akan mengunduh Bat_To_Exe_Converter secara otomatis. Itu sangat membantu saya untuk membuat layanan yang menjalankan file bat saya melalui .exe. http://download.cnet.com/Bat-To-Exe-Converter/3001-2069_4-10555897.html?spi=eae5ab48292cc101b5f0ec370cf99ad

0
Ilya