IShutDown
There is a service IKernel, which controls the shutdown of a node.
Getting the service
The service is fetched as a singleton from the service registry:
final IKernel kernel = CServiceRegistry.getInstance()
.getService(IKernel.class);
As always, make sure that the service starter of your package has a
dependency on the IKernel to ensure that the service already exists.
Shutting down
The kernel distinguishes between two different types of shutting down. The
first kind is a simple System.exit(code). Calling this method is preferable
to a System.exit(), since we reserve the right to add more functionality at
a later time.
void shutDownHard(int aCode);
The other way of shutting down is a bit gentler. All namespaces except the
SYSTEM namespace are shut down in order. Only then is a System.exit()
executed.
void shutDown(int aCode);
Check if the shut-down is in progress
Of course, this call only works with the slow shutdown, where the namespaces are shut down.
boolean isShutDownInProgress();
Shutdown codes
A few shutdown codes are predefined in the enum EShutDownCodes.