Running services in WINE?

Robert Shearman rob at codeweavers.com
Fri Mar 14 14:25:32 CDT 2008


Paul Vriens wrote:
> James Hawkins wrote:
>   
>> On Fri, Mar 14, 2008 at 8:03 AM, Paul Vriens <paul.vriens.wine at gmail.com> wrote:
>>     
>>> 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).
>>>
>>>       
>> http://bugs.winehq.org/show_bug.cgi?id=11651#c3
>>
>> but generally comments 2-4.
>>
>>     
> It's good we came to same conclusion.
>
> If we wanted to implemented a SCM where would that reside? wineboot?
>   

programs/services

It could then be started on demand by wineboot and/or the advapi32 
services functions.
I was planning to work on this after my endpoint mapper patches are 
accepted.

-- 
Rob Shearman




More information about the wine-devel mailing list