You are not logged in Log in Join
You are here: Home » Members » andym » Restarting Zope as a Service

Log in
Name

Password

 

Restarting Zope as a Service

If you run Zope as a service on Windows it can sometimes be nice to restart it through a script. I find this especially useful for cron jobs, when Zope stops responding and so on.

Due to popular demand I include Python and Perl versions of the scripts...

Python

In Python use win32serviceutil:

import win32serviceutil

machine = 'cr582427-a'
service = 'ZopeTest'

def KickService(machine, service, action):
    if action=="start":
        try:
            win32serviceutil.StartService(service, machine)
            print "Service started"
        except:
            print "Service could not be started"
    elif action=="stop":
        try:
            win32serviceutil.StopService(service, machine)
            print "Service stopped"
        except:
            print "Service could not be stopped"

KickService(machine, service, 'stop')
KickService(machine, service, 'start')

Perl

In Perl you can use Win32::Service:

use Win32::Service;
my $machine = 'cr582427-a';
my $service = 'Zope';

print "Stopping\n";
Win32::Service::StopService($machine, $service);

sleep 5;

print "Starting\n";
Win32::Service::StartService($machine, $service);

This of course assumes you know the name of the service. If you don't, Win32::Service can look it up:

use Win32::Service;
my $machine = 'cr582427-a';
my %hash;

print Win32::Service::GetServices($machine, \%hash);
foreach (keys %hash) { print $hash{$_}, "\n"; }