उद्देश्य क्या है?
यदि आप पृष्ठभूमि में काम कर रहे एक छिपी हुई (कोई खिड़की) प्रक्रिया नहीं चाहते हैं, तो विंडोज़ सेवा लिखना और सामान्य विंडो सेवा तंत्र का उपयोग करके इसे शुरू/बंद करना सबसे अच्छा तरीका होगा। विंडोज सेवा आसानी से पायथन में लिखा जा सकता है उदा। यहाँ मेरी अपनी सेवा के भाग (यह कुछ संशोधनों के बिना नहीं चलेगा)
import os
import time
import traceback
import pythoncom
import win32serviceutil
import win32service
import win32event
import servicemanager
import jagteraho
class JagteRahoService (win32serviceutil.ServiceFramework):
_svc_name_ = "JagteRaho"
_svc_display_name_ = "JagteRaho (KeepAlive) Service"
_svc_description_ = "Used for keeping important services e.g. broadband connection up"
def __init__(self,args):
win32serviceutil.ServiceFramework.__init__(self,args)
self.stop = False
def SvcStop(self):
self.ReportServiceStatus(win32service.SERVICE_STOP_PENDING)
self.log('stopping')
self.stop = True
def log(self, msg):
servicemanager.LogMsg(servicemanager.EVENTLOG_INFORMATION_TYPE,
servicemanager.PYS_SERVICE_STARTED,
(self._svc_name_,msg))
def SvcDoRun(self):
self.log('folder %s'%os.getcwd())
self.ReportServiceStatus(win32service.SERVICE_RUNNING)
self.start()
def shouldStop(self):
return self.stop
def start(self):
try:
configFile = os.path.join(jagteraho.getAppFolder(), "jagteraho.cfg")
jagteraho.start_config(configFile, self.shouldStop)
except Exception,e:
self.log(" stopped due to eror %s [%s]" % (e, traceback.format_exc()))
self.ReportServiceStatus(win32service.SERVICE_STOPPED)
if __name__ == '__main__':
win32serviceutil.HandleCommandLine(AppServerSvc)
है और आप
python svc_jagteraho.py--startup auto install
द्वारा स्थापित करें और से
python python svc_jagteraho.py start
चला सकते हैं मैं हो जाएगा सेवाओं की सूची में भी देखा जा सकता है उदाहरण के लिए services.msc यह दिखा देंगे और आप शुरू कर सकते हैं/इसे किसी और को रोकने आप कमांडलाइन
sc stop jagteraho
स्रोत
2010-02-23 16:42:18
क्या आपको लिनक्स पर संबंधित मॉड्यूल पता है? – helplessKirk