2017-05-16 11 views
5

मैं टॉपशेल्फ़ का उपयोग कर विंडोज सेवाओं को बनाने के लिए उपयोग किया जाता हूं। नेट कोर के लिएआप .NET कोर कंसोल एप्लिकेशन से लिनक्स डिमन कैसे बनाते हैं?

  1. यह देखते हुए कि Topshelf अभी तक नेट कोर का समर्थन नहीं करता, मैं कैसे बना सकते हैं विंडोज सेवाओं: .NET कोर और पार मंच जा रहा की संभावना के साथ, इस दिलचस्प परिदृश्यों की संख्या को जन्म देती है? (एक दृष्टिकोण नियमित .NET कोर कंसोल एप्लिकेशन बनाने और एनएसएसएम के साथ स्थापित करने के लिए हो सकता है, लेकिन यह स्टार्ट/स्टॉप के लिए हुक प्रदान नहीं करता है, इसलिए सेवा को गर्व से रोकने का कोई तरीका नहीं है)।
  2. लिनक्स पर आप वही काम कैसे करते हैं? कोई विंडोज सेवाएं नहीं हैं, लेकिन डेमॉन प्रक्रियाओं की अवधारणा है। This answer एक बुनियादी दृष्टिकोण प्रदान करता है, लेकिन अतिरिक्त काम की आवश्यकता है और कुछ अंतर्निहित सॉफ्टवेयर पर निर्भर करता है।
  3. # 1 और # 2 के ऊपर एक पार मंच दृष्टिकोण का उपयोग किया जा सकता है, या यह प्रति प्लेटफ़ॉर्म इस से निपटने के लिए आवश्यक है (उदाहरण के लिए पूर्वप्रक्रमक निर्देशों के साथ)?

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

उत्तर

4

मुझे लगता है कि इस के लिए एक क्रॉस मंच समाधान है न। सेवा सुंदर मंच विशिष्ट हैं, AFAIK।

# 2 के लिए, यदि आप किसी भी कोड में परिवर्तन के बिना यह करने के लिए यदि आप systemd के तहत नेट कोर चलाना चाहते हैं सक्षम होना चाहिए। आपको मूल रूप से करने की ज़रूरत है, अपना आवेदन प्रकाशित करें, और उसके बाद अपने डिमन का वर्णन करने के लिए systemdunit फ़ाइल बनाएं। systemd तो, शुरू करने को पुन: प्रारंभ करने और अपने आवेदनों की हत्या को संभाल लेंगे। https://docs.microsoft.com/en-us/aspnet/core/publishing/apache-proxy#monitoring-our-application

[Unit] 
Description=Example .NET Application 

[Service] 
WorkingDirectory=/var/aspnetcore/hellomvc 
ExecStart=/usr/bin/dotnet /var/aspnetcore/hellomvc/hellomvc.dll 
Restart=always 
RestartSec=10 
SyslogIdentifier=dotnet-example 
User=apache 
Environment=ASPNETCORE_ENVIRONMENT=Production 

[Install] 
WantedBy=multi-user.target 
:

एक systemd इकाई फ़ाइल का एक उदाहरण यहां एक सेवा के रूप में एक ASP.NET कोर अनुप्रयोग चलाने के लिए नहीं है

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