it-swarm-vi.tech

Làm cách nào để tạo một dịch vụ chạy tệp .bat trên Windows 2008 Server?

Tôi đã tạo dịch vụ bằng cách sử dụng

sc create myService binpath=myservice.bat

Nhưng khi tôi khởi động nó, nó không thành công với thông báo lỗi sau:

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

Trên Win2k3 tôi đã sử dụng srvany.exe từ bộ Tài nguyên, nhưng không có bộ tài nguyên nào cho win2k8. Hiện tại tôi đã cài đặt srvany.exe trên máy của mình, nhưng tôi không nghĩ đó là cách tốt nhất để làm điều đó.

Cảm ơn!

21
abyx

Tất nhiên bạn không thể chạy một dịch vụ như vậy. Bạn đã thử sử dụng srvany trong máy chủ 2008 chưa? Theo như tôi biết thì không có phiên bản 'chính thức' của srvany cho s2k8, nhưng bạn luôn có thể thử, phải không?

EDIT: Ồ, tôi quên mất! Chúng tôi cũng sử dụng FireDaemon để chạy các ứng dụng phi dịch vụ như các dịch vụ. Mặc dù vậy, nó không miễn phí và chức năng của nó hơi quá so với nhu cầu của bạn.

9
shylent

Sử dụng NSSM để chạy tệp .BAT hoặc bất kỳ tệp .EXE cũ nào dưới dạng dịch vụ. Nó gần như là một sự thay thế cho SRVANY và là một ứng dụng không rườm rà.

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

Tôi gặp vấn đề tương tự như bạn và NSSM là tiện ích duy nhất hoạt động.

24
Matthew Blackford

Chúng tôi sử dụng Trình lập lịch tác vụ để chạy tác vụ bất cứ khi nào máy tính khởi động (bất kể người dùng có đăng nhập hay không)

8
Korayem

Bạn không thể chạy tệp .BAT hoặc bất kỳ tệp .EXE cũ nào dưới dạng dịch vụ. Các dịch vụ Windows không hoạt động mà bạn. Bạn có thể sử dụng một tiện ích như Trình quản lý dịch vụ không hút (NSSM) hoặc tiện ích SRVANY không miễn phí của Microsoft để chạy một chương trình tùy ý như một dịch vụ, nhưng bạn có thể thấy rằng mình không nhận được " duyên dáng "dừng hành vi.

7
Evan Anderson

Lệnh SC chỉ thêm các mục đăng ký cần thiết cho một dịch vụ - nếu tệp bạn chỉ định không phải là dịch vụ hợp lệ, thì nó sẽ không biến nó thành một.

3
Whisk

hãy thử nó ... nó làm việc cho tôi ..

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

từ: bài đăng này trên các diễn đàn kỹ thuật: http://social.technet.Microsoft.com/Forums/en-US/winserverMigration/thread/98a97aee-c62b-4683-94ab-3777899cf7de/

Đây là những gì để làm ...

Tại thời điểm đăng bài này, không có Công cụ Bộ tài nguyên Windows Server 2008, vì vậy hãy lấy "srvany.exe" từ "Công cụ Bộ tài nguyên Windows Server 2003" và sao chép nó vào một vị trí phù hợp trên máy chủ Win2008 của bạn (ví dụ: C:\Windows\System32 \). Sử dụng "sc" để tạo một dịch vụ mới khởi chạy "srvany" (ví dụ: sc tạo MyService binPath = C:\Windows\System32\srvany.exe DisplayName = "Dịch vụ tùy chỉnh của tôi") Sử dụng RegEdit: tạo khóa "Tham số" cho bạn dịch vụ (ví dụ: HKEY_LOCAL_MACHINE\HỆ THỐNG\CurrentControlset\Services\MyService\Paramaters \) Sử dụng RegEdit: trong khóa "Tham số" mới được tạo, tạo một giá trị chuỗi có tên là "Ứng dụng" và nhập đường dẫn đầy đủ đến ứng dụng bạn muốn chạy như một dịch vụ. (Không cần trích dẫn.)

Và rằng nên làm điều đó.

Lưu ý: một số ứng dụng lưu trữ cài đặt của chúng trong Hive người dùng, không thuộc HKEY_LOCAL_MACHINE, vì vậy bạn sẽ cần chạy ứng dụng để định cấu hình nó, sau đó định cấu hình dịch vụ để chạy như người dùng đó.

2
user1977194

tôi đã sử dụng Windows scht Nhiệm vụ.

bạn có thể tham khảo điều này. https://technet.Microsoft.com/en-us/l Library/cc725744.aspx#BKMK_hours

0
Yit Ming

Tôi tìm thấy hai tùy chọn khác mà bạn sẽ không lấy được ví của mình.

Bạn có thể có sc launch srvany mà sau đó trỏ đến chương trình của bạn. (có một bài đăng trên diễn đàn mà tôi không thể liên kết đến vì tôi không có đủ đại diện ở đây mặc dù tôi làm trên StackOverflow - càu nhàu)

Dưới đây là các bước mà poster gốc sử dụng:

  1. Sử dụng sc để tạo một dịch vụ mới khởi chạy srvany (ví dụ: sc create MyService binPath=C:\Windows\System32\srvany.exe DisplayName="My Custom Service")
  2. Sử dụng RegEdit: tạo khóa Parameters cho dịch vụ của bạn (ví dụ: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MyService\Parameters\)
  3. Sử dụng RegEdit: trong khóa Parameters mới được tạo, tạo một giá trị chuỗi có tên Application và nhập đường dẫn đầy đủ đến ứng dụng bạn muốn chạy như một dịch vụ. (Không cần trích dẫn.)

Nếu đó có vẻ là một chút hack , thì bạn có thể xây dựng một dịch vụ .NET để khởi chạy quy trình của mình. Nếu bạn muốn bỏ qua một vài bước, đây là một dịch vụ .NET nguồn mở có thể khởi chạy các quy trình chung:

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

Tinh chỉnh nó theo nhu cầu của bạn nhưng nó sẽ làm hầu hết những gì bạn muốn ra khỏi hộp.

0
databyte

Tôi vấp phải điều này. Đây là công cụ có tên Bat_To_Exe_Converter. Rất dễ dàng để chuyển đổi bất kỳ tệp .bat thành tệp .exe. Thử nó. Tải xuống trình tải xuống trước và nó sẽ tự động tải xuống Bat_To_Exe_Converter sau đó. Nó thực sự giúp tôi tạo ra dịch vụ chạy tệp .bat của tôi thông qua .exe. http://doad.cnet.com/Bat-To-Exe-Converter/3001-2069_4-10555897.html?spi=eae5ab48292cc101b5f0ec370cf99ad

0
Ilya