2008-10-03 16 views
6

कहें कि मेरे पास एक तृतीय पक्ष एप्लिकेशन है जो पृष्ठभूमि कार्य करता है, लेकिन कंसोल को सभी त्रुटियों और संदेशों को प्रिंट करता है। इसका अर्थ यह है कि, वर्तमान में, हमें सर्वर पर सर्वर पर लॉग ऑन रखना होगा, और जब भी हम रीबूट करेंगे, एप्लिकेशन को पुन: प्रारंभ करें (डबल-क्लिक करें)।मैं विंडोज सेवा के रूप में एक सीएलआई एप्लिकेशन कैसे चला सकता हूं?

इतना अच्छा नहीं है।

मैं एक तरह से निश्चित होता था, यह करने के लिए एक आसान तरीका था - एक सामान्य सेवा आवरण, कि stdout और stderr के लिए एक लॉग फ़ाइल के साथ विन्यस्त किया जा सकता।

मैंने svchost.exe की जांच की, लेकिन according to this site, केवल डीएलएल सामान के लिए। अफ़सोस की बात है।

संपादित करें: एप्लिकेशन को बैच फ़ाइल से शुरू करने की आवश्यकता है। FireDaemon कुछ है कि अजगर कोड का < 10 लाइनों में किया जा सकता है ... ओह अच्छी तरह से, यहाँ आविष्कार नहीं के लिए चाल कर रहा है, लेकिन मुझे लगता है यह थोड़ा overkill है, ...

उत्तर

10

बाहर चेक srvany.exeResource Kit से। यह किसी सेवा के रूप में कुछ भी चलाने देगा।

आप srvany.exe के माध्यम से अपने निष्पादन के लिए सेवा परिभाषा में पैरामीटर पारित कर सकते हैं ताकि आप रजिस्ट्री seting इस प्रकार से एक सेवा के रूप में एक बैच फ़ाइल चला सकते हैं: यदि आप में इन कुंजियों की स्थापना:

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MyService\Parameters] 
"Application"="C:\\Windows\\System32\\cmd.exe" 
"AppParameters"="/C C:\\My\\Batch\\Script.cmd" 
"AppDirectory"="C:\\My\\Batch" 

नोट फ़ाइल का उपयोग करने के बजाय RegEdit आपको केवल मानों में एकल बैकस्लैश की आवश्यकता है।

1

फायरडेमॉन देखें। एक मुफ्त संस्करण (फायरडेमॉन लाइट मुझे लगता है) है जो केवल एक समय में स्थापित 1 सेवा की अनुमति देता है, लेकिन यह सेवाओं को स्थापित करने के लिए एक बहुत ही उपयोगी टूल है। यदि यह आवश्यक है, तो यह बैच फ़ाइलों के चारों ओर सही ढंग से लपेटता है।

3

क्यों बस एक बहुत पतली सेवा आवरण को लागू नहीं है, यहाँ .NET में एक सेवा लिखने के लिए एक शुरुआत वाली मार्गदर्शिका है Writing a Useful Windows Service in .NET in Five Minutes

जब आप मिल गया है कि आप आवेदन शुरू करने और इसे कॉन्फ़िगर करने के लिए इतना है कि Process वर्ग का उपयोग कर सकते चल आप स्वयं को stdout/stderr को संभाल सकते हैं (ProcessStartInfo आपका मित्र है)।

0

मैं firedaemon विकल्प दूसरा। आप क्लाइंट आउटपुट विंडो को प्रदर्शित करने की अनुमति देने के लिए डेस्कटॉप को डेस्कटॉप से ​​बातचीत करने की अनुमति देने के लिए विकल्प भी सेट करना चाह सकते हैं। वे अब एक मुफ्त संस्करण की पेशकश नहीं करते हैं, लेकिन यदि आप firedaemon लाइट के लिए वेब पर खोज करते हैं तो आप पुराने फ्री लाइट संस्करण को पा सकते हैं या शायद भुगतान मार्ग के लिए जा सकते हैं।

4

मैं NSSM: The Non-Sucking Service Manager की सिफारिश करता हूं।

  • 32/64-बिट व्यय
  • पब्लिक डोमेन (!)
  • ठीक से सेवा रोक संदेशों को लागू करता है, और सुंदर शटडाउन के लिए अपने आवेदन करने के लिए उचित संकेत भेजता है।
संबंधित मुद्दे

 संबंधित मुद्दे