2009-02-16 28 views
5

Tôi có một tệp lô bắt đầu quá trình Java trong máy chủ Windows 2003. Theo chính sách bảo mật, người dùng của máy đó bị đăng xuất một cách mạnh mẽ, nếu người dùng không hoạt động trong một khoảng thời gian nhất định. Vấn đề là khi người dùng đăng xuất, quá trình này cũng sẽ chết.Chạy một quy trình Java trong Windows ngay cả sau khi người dùng đăng xuất

tôi lên kế hoạch một nhiệm vụ mới (Control Panel -> Scheduled Tasks) và chọn tùy chọn 'Khi máy tính của tôi bắt đầu' và đưa các chi tiết tài khoản người dùng đó. Nhưng nó dường như không có hiệu lực, người dùng vẫn đăng xuất và quá trình chết. Việc khởi động lại có cần thiết để thay đổi này có hiệu quả không? Và sau khi khởi động lại, tôi sẽ đạt được những gì tôi mong đợi (giữ cho quá trình còn sống)?

Ngoài ra, sẽ chạy quá trình này như một dịch vụ Windows giải quyết vấn đề? Nếu vậy, bạn có thể vui lòng cho tôi biết cách tôi có thể tạo một chương trình Java hoặc một tệp lô để chạy dưới dạng Dịch vụ Windows không? Tôi không muốn sử dụng bất kỳ công cụ hoặc thư viện nào khác của bên thứ ba.

Cảm ơn

Trả lời

11

Nếu bạn muốn nó để chạy theo nhiệm vụ theo lịch trình, bạn phải chắc chắn rằng bạn không có "chỉ chạy khi người dùng đăng nhập" kiểm tra, trong đó thường có nghĩa là bạn cần phải cung cấp một mật khẩu.

Một dịch vụ cửa sổ sẽ là cách thông thường để làm điều này: các Java service wrapper là bên thứ 3 nhưng vô số người sử dụng nó.

Nếu bạn thực sự không muốn sử dụng phương pháp của bên thứ ba, bạn có thể sử dụng svrany.exe (http://support.microsoft.com/kb/137890) trên WIndows NT hoặc mới hơn, nhưng nó không được thiết kế riêng cho Java.

+0

Cảm ơn bạn đã trả lời. Có, tôi không có bộ tùy chọn cụ thể đó và tôi đã cung cấp chi tiết mật khẩu. Tôi đã tìm hiểu về Trình bao bọc dịch vụ Java trong một chuỗi khác. Tôi dự định sẽ sử dụng nó như một phương sách cuối cùng. – cdoe

+0

Tôi thích trình bao bọc dịch vụ Java. Đã sử dụng nó trong một vài năm và nó hoạt động tốt. –

+0

Vấn đề với nhiệm vụ theo lịch trình là theo mặc định nó sẽ chạy quá trình với ưu tiên 'dưới mức bình thường'. Điều này có thể gây ra vấn đề về hiệu năng khi máy chủ chịu tải – gerrytan

1

Tôi đang sử dụng Java Service Wrapper để bắt đầu quá trình java như dịch vụ cửa sổ. Tôi đoán nó hoạt động tương tự với srvany.exe được đề cập trong bài trước.

0

Theo phân tích của tôi,

Giải pháp Idle sẽ viết chương trình tạo dịch vụ Windows VC++ (.net) để khởi động .bat/.exe như một dịch vụ Hệ thống với tất cả các phương thức gọi lại yêu cầu đến SCM.

Note: 1. Bao bì các quá trình với SRVANY.EXE sẽ không làm việc vì nó không có bất kỳ cuộc gọi trở lại quá trình để các SCM (Control Service Manager). 2. Và dịch vụ java Wrapper là một API của bên thứ ba (nhiều người được cấp phép LGPL).

Các vấn đề liên quan