Kern Sibbald wrote:
> On Monday 16 May 2005 11:25, Russell Howe wrote:
>
>>/servicehelper, which looks to mean "Display pretty system tray icon".
>
> No, see below.
OK, I had misconceptions about the /servicehelper switch.
> /servicehelper is an old artifact that should not be used, unless you want to
> have all kinds of problems -- see below.
OK. I notice that the current code in src/filed/win32/winmain.cpp
doesn't even check for it as a commandline option.
> The bacula-fd runs both the daemon and the systray icon. They are just two
> different threads of the same program.
Ah, this I didn't realise - it explains some of my confusion :)
>>>>HKLM\Software\Microsoft\Windows\CurrentVersion\Run has this:
>>>>
>>>>Name: Bacula
>>>>Value: "c:\bacula\bin\bacula-fd.exe" /servicehelper
>
>
> If that is how you are starting Bacula, then you are starting it incorrectly.
This was not set up by me - looking at the source, it is set up by the
InstallService() member function of bacService. Take a look around line
528 of src/bacula/filed/win32/winservice.cpp:
// Now install the servicehelper registry setting...
// Locate the RunService registry entry
HKEY runapps;
if (RegCreateKey(HKEY_LOCAL_MACHINE,
"Software\\Microsoft\\Windows\\CurrentVersion\\Run",
&runapps) != ERROR_SUCCESS) {
It then looks like bacula-fd.exe goes on to add itself to this startup key.
So, when bacula-fd is run with the /install switch, it creates this
HKLM\Software\Windows\CurrentVersion\Run key, as well as doing things
like registering itself with the service manager (at least on NT and above).
I don't know if removing this key on Win9x/ME will have any adverse
effects, although the code seems to add an entry under RunServices on
those OSes, so I suspect the key under Run is just noise. Since the code
doesn't even seem to check for the option, I don't see that it can be
doing anything...
> This is probably just some other key that the original code setup that is not
> used by Bacula. Bacula should always be started as /service. I have no idea
> what the service helper code does. It is old original code that is not
> functional as best I know, and I just didn't bother to rip it out.
Well, I have removed this startup key on one of our servers, so there is
no longer any copy of bacula running with the /servicehelper switch.
I'll let you know if it causes any weirdness. Removing the key certainly
stops the warning messages being logged when users log in via terminal
services.
>>>>strncmp("/servicehelper", "/service", 8) and is only matching on the 1st
>>>>8 characters of "/servicehelper".
>>>>
>>>>"/service" is then seen as equal to "/servicehelper"
>>>>
>>>>Should it not be strcmp(&szCmdLine[i], BaculaRunService)? Is
>>>>szCmdLine[i] trusted?
>>
>>Trusted to be null terminated, rather (otherwise it may be a potential
>>vulnerability?).
>
> I could be wrong, but I think you are going in a completely wrong direction.
> As I previously stated, most likely it has something to do with interacting
> with the user. If it is not that then it is some new requirement that
> Microsoft has added in the past few years to interact with the Service
> Manager that Bacula does not understand.
Well, from where I'm sitting it looks like a couple of things:
* The registry key is (presumably?) superfluous and should not be
created when the FD is installed as a service in Windows. This will also
be one less thing to run at bootup, which I'm sure is welcome :)
* The commandline option parsing sees the following two options as
identical:
foo
foobar
(but will also pick up the 'foobar' option if it checks for it). This
isn't a problem, as long as command line options are picked such that
none follow the above pattern.
Had the latter not been the case, I suspect bacula-fd.exe would simply
have terminated as soon as it had been called with /servicehelper, with
an error to the effect that it didn't know what '/servicehelper' meant.
Instead, it took it to mean /service and tried to register itself with
the service helper (which MS says an application started from the
console cannot do).
--
Russell Howe
[EMAIL PROTECTED]
Today's Nemi: http://www.metro.co.uk/img/pix/nemi_may17.jpg
-------------------------------------------------------
This SF.Net email is sponsored by Oracle Space Sweepstakes
Want to be the first software developer in space?
Enter now for the Oracle Space Sweepstakes!
http://ads.osdn.com/?ad_id=7412&alloc_id=16344&op=click
_______________________________________________
Bacula-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bacula-users