This RFE is for improving the operating system (OS) service integration for GlassFish. Here are the requirements:
1. Expose the asadmin delete-service interface as a public interface (rather than being hidden as it is currently).
2. Modify the service implementation so that it acts as a monitor on all operating systems. By monitor, this means that if the service is started, then if the GlassFish process exits, it should be restarted automatically. The Windows service currently doesn't work this way - I'm not sure for Linux and Solaris.
3. Modify the service implementation and/or the various start/stop commands so that they interact correctly. This includes:
3a. If the OS service is started, and the user runs stop-local-instance or stop-domain, then the OS service should be stopped too.
3b. If the server is started using start-domain or start-local-instance, and the OS service is not started, the OS service should not be started. However, if the user then later starts the OS service, the OS service must recognize that the server is already running and monitor the already running server (See req. #2).
4. Any sequence of OS service commands and asadmin start/stop-domain or start/stop-local-instance commands must not cause a failure of the command. For example, currently, if you start the Windows OS service for a domain, and then run stop-domain, and then try to stop the Windows OS service, you get an error message from Windows. Also on Windows, if you run start-domain, and then start the OS service, you get an error message saying that "The process terminated unexpectedly." and the service isn't started.
5. The service should be able to be deleted using either the operating system command for deleting services or the asadmin delete-service command. So the following sequences should work:
OS delete service command
Currently, the 2nd create-service in this sequence may require a --force option. Ideally, it shouldn't.
6. These requirements apply to the officially supported operating systems for GlassFish for Windows, Linux, and Solaris.