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.
The kernel distinguishes between two different types of shutting down.
The first kind is a simple
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
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.
A few shutdown codes are predefined in the enum EShutDownCodes.