Runnning a twisted application as windows service
June 27th, 2007 by exhuma.twn
Currently I am a bit busy, so I will just dump the post I found on usenet. Eventually I will clean it up…
On Wed, 22 Oct 2003 12:24:42 -0600 "Justin Johnson" <justinjohnson@fastmail.fm> wrote: > The general consensus on the mailing list archives seems to be that > I'd need to setup my code to not require twistd but just run > standalone. Uh. *Maybe* that's the consensus, but it's not actually correct. You can have a tap or tac run as a NT service. Lets say you have a script "server.py" that is runnable with "twistd -y", you can do (and similar code will work for TAPs):
import sys, os
import win32serviceutil, win32service
class MyService(win32serviceutil.ServiceFramework):
"""NT Service."""
_svc_name_ = "MyService"
_svc_display_name_ = "MyService server"
def SvcDoRun(self):
import server
f = open(os.path.join(server.rootPath, "cyberhigh.log"), 'a')
from twisted.python.log import startLogging
from twisted.application.app import startApplication
from twisted.internet import reactor
startLogging(f)
startApplication(server.application, 0)
reactor.run()
def SvcStop(self):
self.ReportServiceStatus(win32service.SERVICE_STOP_PENDING)
from twisted.internet import reactor
reactor.stop()
if __name__ == '__main__':</pre>
win32serviceutil.HandleCommandLine(MyService)</pre>
import win32serviceutil, win32service
class MyService(win32serviceutil.ServiceFramework):
"""NT Service."""
_svc_name_ = "MyService"
_svc_display_name_ = "MyService server"
def SvcDoRun(self):
import server
f = open(os.path.join(server.rootPath, "cyberhigh.log"), 'a')
from twisted.python.log import startLogging
from twisted.application.app import startApplication
from twisted.internet import reactor
startLogging(f)
startApplication(server.application, 0)
reactor.run()
def SvcStop(self):
self.ReportServiceStatus(win32service.SERVICE_STOP_PENDING)
from twisted.internet import reactor
reactor.stop()
if __name__ == '__main__':</pre>
win32serviceutil.HandleCommandLine(MyService)</pre>
-- Itamar Shtull-Trauring http://itamarst.org/ Available for Python & Twisted consulting
Posted in Python | No Comments »
