Running services in WINE?

Paul Vriens paul.vriens.wine at gmail.com
Fri Mar 14 08:03:31 CDT 2008


Christopher wrote:
> Maarten Lankhorst wrote:
>> Hi Christopher,
>>
>> 2008/3/12, Christopher <raccoonone at procyongames.com>:
>>   
>>> I've been trying to get MozyHome working on WINE, and have made a little
>>>  progress. However, it seems that the service which Mozy uses won't
>>>  start. Searching a bit I found a thread from a year ago stating that
>>>  services don't work in WINE, but that it was being worked on. Are
>>>  services implemented in WINE now, or if they're not is someone working
>>>  on it who I could help out?
>>>     
>> Services most definitely work now. Some of them you can start manually
>> with "wine net start 'servicename'", however this shouldn't be needed.
>>
>> Cheers,
>> Maarten.
>>
>>
>>   
> Thanks Maarten!
> I tried that, but didn't have anymore luck. The service exits almost 
> immediately, after giving a few fixme messages. Time to do some 
> debugging I guess :)
> 
> Christopher
> 
> 
> 
I've been looking into this and found an issue in Wine that I'm not sure who to 
test or solve yet.

MozyHome creates a key in the Services branch:

System\\CurrentControlSet\\Services\\mozybackup

It than adds a 'Description' value to this key.

A bit later it checks for the service by doing an OpenService. This succeeds on 
Wine but shouldn't.

I've created a simple test that creates the key and some value in it. Doing an 
OpenService fails every time on Windows.

I took another approach whereby I created a proper service (CreateService) and 
checked whether I could do an OpenService. This succeeded every time even after 
deleting the whole key.

What it boils down to is that the service control manager keeps track of the 
services. Only proper service calls can influence the service control manager 
(or a reboot).

So as long as we don't implement some service control manager functionality 
(services.exe?) we could have some issues as with MozyHome.

One approach we could take while we don't have the full functionality is to 
check for the minimal required parameters (value) we need for a service. Would 
that be acceptable?

I think Maarten's patch for CreateService was along those same lines 
(http://source.winehq.org/git/wine.git/?a=commit;h=284f86183cce638ff8fce4023cb76273e979aa09). 
We need to find a better way of checking whether a service is truly installed. 
(and not just some registry keys).

-- 
Cheers,

Paul.



More information about the wine-devel mailing list