Page 1 of 1

Install a service -VS- Run as a service

Posted: 2015.02.11. 03:53
by B00ze
Good day.

Well, we're getting closer and closer to me just giving up on SmartMonTools and using HDS (I still have to read the MAN for the SmartMonTools CONF file, so I dunno yet what I can do with the deamon, but HDS is so much easier to setup). So yesterday I decided I'd try to run HDS as a Service and Lo, I get a warning that the GUI cannot run while the service is running. What?! I was expecting HDS to install a service, rather than to run it's entire program as a service. If HDS is to be considered a professional tool, it needs to be able to run under a "limited" user account and STILL be able to show its GUI.

So my suggestion is to do just that, split HDS between a service that just responds to messages and reads SMART data, and a GUI that calls the service. This is the best way to go. I'm not privy to Windows programming but there must be the equivalent of good old Amiga message ports for inter-process communication. Regularly call the service asking it which drives are there, and asking it for SMART data, and display that in a user-mode GUI. It's a major undertaking, but really, that's how it should be - not every user has administrative rights and the GUI is so nice, it's a shame we can't use it while the service is running.

Questions: If run as a service, can HDS still display alerts? Or is the only thing that will work emails?

PS: I did manage to run two instances of HDS by restarting the service manually while the GUI was opened ;-)

Thank you.
Best Regards.

Re: Install a service -VS- Run as a service

Posted: 2015.02.12. 17:41
by hdsentinel
> So yesterday I decided I'd try to run HDS as a Service and Lo, I get a warning that the GUI cannot run while the service is running. What?!
> I was expecting HDS to install a service, rather than to run it's entire program as a service.
> If HDS is to be considered a professional tool, it needs to be able to run under a "limited" user account and STILL be able to show its GUI.

Excuse me, but generally this is a limitation of Windows (more precisely NEWER Windows) OSes that they do not show GUI, as since Vista, the interactive services are no longer supported.
Hard Disk Sentinel (more precisely Hard Disk Sentinel Professional - as its name suggests ;) ) is a professional tool, this is exactly why it works this way.

Let me explain WHY Hard Disk Sentinel does NOT install a service and have a different GUI:

1) when the development of Hard Disk Sentinel first started, the goal was to support all kind of systems, even very old systems (even Windows 98/ME) where there is no NT service mode available

2) when the development of the service mode started, interactive services were possible: even NT services could happily access users, so under Windows NT4, 2000, XP, 2003 systems, Hard Disk Sentinel works with full user interface even in service mode (with all tray icons, complete windows, configuration, etc..) even under limited user rights of course

I know these are NOT IMPORTANT for most users now. They completely ignore older operating systems - but to be honest, for me, it is still important to allow using the software with older systems.
So if the above are not important for you, I can show further, more practical reasons about why there is no individual service and GUI:

3) if you prefer to diagnose a system, especially if the hard disk is not really perfect and you'd risk ALL activity (for example complete power cycle / reset) then you may not want to install a service and change the system configuration heavily.
Especially if you prefer to use Hard Disk Sentinel Professional Portable version, which can be used without installation, by simply starting to perform the diagnostics, disk testing, disk fixing and so.

4) similar to the above, if your system does not work as expected, but you can still start Windows in SAFE MODE, it is handy to start Hard Disk Sentinel this way, to check the status quickly, even when the services are not started/not working

5) generally, the "Service" mode is designed for users of computers where
- there is absolutely no user and they want to run the software unattended after first configured, for example to issue alerts, perform scheduled tasks, send daily reports, provide status remotely, automatically export hard disk status information, etc...
This is often combined with the remote monitoring provided by Hard Disk Sentinel Enterprise Server.
- it is required to isolate the current user (with limited user rights) from the system tools, to prevent them from changing configuration, performing time and resource intenstive testing and so.

The current design completely meets all of the above requirements.

And if you still prefer to have information displayed when you use the system with limited user rights, Hard Disk Sentinel Tray (available in the Hard Disk Sentinel program group or simply starting HDSentinelTray.exe from the folder of Hard Disk Sentinel, even with limited user rights) can be useful, as described in the Help.
This communicates with the Service (running in the background) and shows basic hard disk information on the tray and allow the user to VIEW a complete hard disk status report.

> So my suggestion is to do just that, split HDS between a service that just responds to messages and
> reads SMART data, and a GUI that calls the service. This is the best way to go.

Excuse me, but I do not really think, this approach would be against of the points I wrote above.

> I'm not privy to Windows programming but there must be the equivalent of good old Amiga message ports for
> inter-process communication.

This is possible of course, and currently implemented ;) This is how the Hard Disk Sentinel Tray is working.

> Regularly call the service asking it which drives are there, and asking it for SMART data, and display that in a user-mode GUI.

If we would speak about SMART data, then it would be very easy.
Just consider the high amount of OTHER kind of data, which is different and would need to be "splitted" between the GUI and the service.
I mean the MANAGEMENT of the S.M.A.R.T. data (for example by using the offsets, enable/disable of attribute checking), temperature calibration, hard disk specific functions/features, the disk tests and so.
And then I did not yet mention the functions related to file system, file access rights (if you consider the free space monitoring, the backup function of files, etc...) and this would make things more problematic and confusing as then the user will not know if the commands will be performed as the user with complete user rights or the actual (limited) user rights.


> Questions: If run as a service, can HDS still display alerts? Or is the only thing that will work emails?

If you use the Hard Disk Sentinel Tray, then yes, it gets the alerts from the Service and display alerts of course.
Yes, also you can use the e-mails to receive information about alerts, degradations, health/temperature thresholds reached and so.
And there are numerous other ways to view the disk status, for example
- use Windows Sidebar gadget function on Windows Vista/7 to reflect the current temperature, health etc.
- use the Configuration -> Integration -> Enable WebStatus option and then you can get complete reports from any web browser (running on the actual system or even remotely). It can be password protected of course to prevent/restrict access.

and if you prefer, you may even use Configuration -> Advanced options -> Generate and update XML file to automatically export all hard disk status information (including complete S.M.A.R.T. of course) and you can any time make any extension to process this and show, maybe in a different GUI ;)
There are some extensions already available using these files to integrate Hard Disk Sentinel into different (monitoring) systems.

Re: Install a service -VS- Run as a service

Posted: 2015.02.13. 01:23
by B00ze
Once again, thanks for the good reply.

You make some good points. I still think a service and a user-mode GUI is the best way, but then, that *is* almost what you have, now that I know what HDSTray.exe is for - it communicates with the service and displays status to limited users. I thought of asking you to simply stop the service automatically when the user re-runs HDS, but then you would not know when to restart it, so it cannot be done.
> Questions: If run as a service, can HDS still display alerts? Or is the only thing that will work emails?

If you use the Hard Disk Sentinel Tray, then yes, it gets the alerts from the Service and display alerts of course.
Yes, also you can use the e-mails to receive information about alerts, degradations, health/temperature thresholds reached and so.
And there are numerous other ways to view the disk status, for example
- use Windows Sidebar gadget function on Windows Vista/7 to reflect the current temperature, health etc.
- use the Configuration -> Integration -> Enable WebStatus option and then you can get complete reports from any web browser (running on the actual system or even remotely). It can be password protected of course to prevent/restrict access.
Man, you have thought of everything, lol! I guess it can indeed be called HDS Professional! I plan on using both emails and alert pop-ups. The gadgets are disabled on my system (I like my desktop clean) and while there's always the web server, I find it simpler to use your shortcut to stop the service and then run HDS in program mode.
and if you prefer, you may even use Configuration -> Advanced options -> Generate and update XML file to automatically export all hard disk status information (including complete S.M.A.R.T. of course) and you can any time make any extension to process this and show, maybe in a different GUI ;) There are some extensions already available using these files to integrate Hard Disk Sentinel into different (monitoring) systems.
I'll keep that in mind; I'm off to try HDSTray.exe :-)

Thank you much for all your time, you are a pleasure to talk to.
Best Regards,