[python-win32] Problems starting services - any advice?

Tim Roberts timr at probo.com
Mon Dec 3 23:21:06 CET 2007


David London wrote:
> Hello all,
> I'm encountering some strangeness when running my python code on a windows 
> machine and I was wondering if anyone had any advice,
>
> I have a number of python services (8) that run on a client machine, 
> monitoring various database tables or folders, doing something with the data, 
> then sleeping for a given amount of time and repeating. 
> Normally, I have installed and run these services as "local system" and they 
> have worked without any problems. 
> For the latest client, they have asked that we run all of the services as a 
> specific user. This is where I'm running into problems.
> When I attempt to start the 8th service, it gives me an error (error 1053: The 
> service did not respond to the start or control request in a timely fashion). 
> It doesn't matter what order I start them in, the eighth service always fails 
> to start. And if I change the service back to run as "local service" it runs 
> without problem. 
> I'm pretty sure that this is not a windows specific problem, since I can 
> create another user (with the same permissions) and when I attempt to start 
> the service it gives me the same error.
>   

Why does that make you think it is not a "windows specific problem"?

> It appears as if there is some internal limit on the number of services that 
> pywin can handle. 
>
> Has anyone else encountered this? Or have any advice on where I could look to 
> see what errors are being generated? I can not find any logs or error 
> messages when the services fail to start.
>   

This is not a Python issue.  It turns out to be a Windows issue.

Every service that runs with a real user ID gets its own "desktop",
separate from the console desktop.  Each desktop gets a chunk of heap
space for all of the applications running on that desktop, carved from a
global desktop heap.  The size of each heap is about 3MB, but  the
global heap has a non-configurable size of 48MB.  Those were the numbers
as of Windows 2000, although it sounds like they aren't that much
different now.

In the old days, you used to be able to adjust the size of this heap by
tweaking a registry entry:
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session
Manager\Subsystems
In the "Windows" value, there's a parameter like
"SharedSection=1024,3072".  The suggestion is to change that to
1024,3072,512.  However, on my XP SP2 machine, that's already what it says.

Do your services need to interact with the user?

-- 
Tim Roberts, timr at probo.com
Providenza & Boekelheide, Inc.



More information about the python-win32 mailing list