I posted 3.0.10 to fix the Apache stopping issue. I made a bad assumption on how the apache processes were listening for connections.
I am not having issues detecting the correct service (A grey check means not detected and a green check means detected)
This is what I am doing to test it.
1. Start the CP and install the Apache service via clicking the checkbox (making it turn into a green check).
2. Open the Config > Service and Port Settings
3. Change the name of the Apache Service (in this instance, I tried XAMPPApache2.2) and save
4. Restart the control panel
5. The check is in the grey check state again (service not detected)
6. Open and change the name back to the default (Apache2.2) and save
7. Restart the control Panel
8. The checkbox starts in the green check state (service installed) as expected
To me it looks like it is working correctly and the code looks correct as well. It detects solely based on the name defined in the INI file.
I considered single instance but at this time I have not implemented it. There are instances were people might have multiple XAMPPs installed and running concurrently. The INI configuration file allows for this to happen by only detecting the proper instances as defined (at least that is how it is suppose to work