public interface Daemon
Daemon
interface can be initialized, started and
stopped according to the conventions of the underlying operating
system.
Implementors of this interface must also provide a public constructor with no arguments so that instances can be created in an automated fashion.
Modifier and Type | Method and Description |
---|---|
void |
destroy()
Frees any resources allocated by this daemon such as file
descriptors or sockets.
|
void |
init(DaemonContext context)
Initializes this
Daemon instance. |
void |
start()
Starts the operation of this
Daemon instance. |
void |
stop()
Stops the operation of this
Daemon instance. |
void init(DaemonContext context) throws DaemonInitException, Exception
Daemon
instance.
This method gets called once the JVM process is created and the
Daemon
instance is created thru its empty public
constructor.
Under certain operating systems (typically Unix based operating systems) and if the native invocation framework is configured to do so, this method might be called with super-user privileges.
For example, it might be wise to create ServerSocket
instances within the scope of this method, and perform all operations
requiring super-user privileges in the underlying operating
system.
Apart from set up and allocation of native resources, this method
must not start the actual operation of the Daemon
(such
as starting threads calling the ServerSocket.accept()
method) as this would impose some serious security hazards. The
start of operation must be performed in the start()
method.
context
- A DaemonContext
object used to
communicate with the container.DaemonInitException
- An exception that prevented
initialization where you want to display a nice message to the user,
rather than a stack trace.Exception
- Any exception preventing a successful
initialization.void start() throws Exception
Daemon
instance. This
method is to be invoked by the environment after the init()
method has been successfully invoked and possibly the security
level of the JVM has been dropped. Implementors of this
method are free to start any number of threads, but need to
return control after having done that to enable invocation of
the stop()-method.Exception
- If the start was not successfulvoid stop() throws Exception
Daemon
instance. Note
that the proper place to free any allocated resources such as
sockets or file descriptors is in the destroy method, as the
container may restart the Daemon by calling start() after
stop().Exception
- If the stop was not successfulvoid destroy()
Copyright © 2002–2023 The Apache Software Foundation. All rights reserved.