如何检测碳启动或停止
How to detect while carbon starting or stopping
我使用 Runtime.getRuntime().exec() 在 GREG 处理程序中启动外部程序,并获取其 pid。但是我如何检测 GREG 何时停止或重新启动,我可以停止或重新启动外部程序。
没有记录在案的执行此操作的机制。 OSGi space 中有一些内部机制,组件可以在这些机制中定义依赖关系,以便在这些机制启动时对其进行检测。但是,我认为这些不会暴露给处理程序 API。
一种方法是检查您是否可以从处理程序中成功访问资源,如果可以,则启动程序。
如果您想在启动或关闭阶段执行一些自定义逻辑,您可以使用 org.wso2.carbon.core package
中提供的处理程序
例如
ServerStartupHandler - https://github.com/wso2/carbon-kernel/blob/4.4.x/core/org.wso2.carbon.core/src/main/java/org/wso2/carbon/core/ServerStartupHandler.java
ServerShutdownHandler - https://github.com/wso2/carbon-kernel/blob/4.4.x/core/org.wso2.carbon.core/src/main/java/org/wso2/carbon/core/ServerShutdownHandler.java
ServerRestartHandler - https://github.com/wso2/carbon-kernel/blob/4.4.x/core/org.wso2.carbon.core/src/main/java/org/wso2/carbon/core/ServerRestartHandler.java
我使用 Runtime.getRuntime().exec() 在 GREG 处理程序中启动外部程序,并获取其 pid。但是我如何检测 GREG 何时停止或重新启动,我可以停止或重新启动外部程序。
没有记录在案的执行此操作的机制。 OSGi space 中有一些内部机制,组件可以在这些机制中定义依赖关系,以便在这些机制启动时对其进行检测。但是,我认为这些不会暴露给处理程序 API。
一种方法是检查您是否可以从处理程序中成功访问资源,如果可以,则启动程序。
如果您想在启动或关闭阶段执行一些自定义逻辑,您可以使用 org.wso2.carbon.core package
中提供的处理程序例如
ServerStartupHandler - https://github.com/wso2/carbon-kernel/blob/4.4.x/core/org.wso2.carbon.core/src/main/java/org/wso2/carbon/core/ServerStartupHandler.java
ServerShutdownHandler - https://github.com/wso2/carbon-kernel/blob/4.4.x/core/org.wso2.carbon.core/src/main/java/org/wso2/carbon/core/ServerShutdownHandler.java
ServerRestartHandler - https://github.com/wso2/carbon-kernel/blob/4.4.x/core/org.wso2.carbon.core/src/main/java/org/wso2/carbon/core/ServerRestartHandler.java