0
我正在爲Stilts stomp server做一些Poc。需要防止服務器jvm終止並通過另一個jvm來完成。這裏是一個代碼片段從命令行停止jvm優雅關閉
public static void main(String[] args) {
try {
log.debug("Starting server...");
StompServer<MockStompProvider> server = new StompServer<MockStompProvider>();
server.setStompProvider(new MockStompProvider());
server.addConnector(new InsecureConnector());
server.start();
while (true) {
Thread.sleep(200000);
}
} catch (Exception ex) {
log.error("Exception ", ex);
}
}
有兩個要求。
- 是否有任何其他方式來防止終止上述jvm而不使用
while
循環。 - 我想停止使用類似
java -jar server.jar -- stop
的命令jvm,例如jetty之類的服務器。碼頭使用端口並監聽停止請求的信號。有沒有簡單的方法。
第二個選項之一可以使用AnchorFile,在啓動jvm時創建文件並監視文件是否存在,並使用stop jvm刪除該文件。
弓做到這一點與ServerSocket的給你弟弟。 – vels4j
@ vels4j可以改善錯誤處理。例如檢測到該服務已在運行,並且如果您沒有正在運行的服務而停止,則會發出合理的錯誤。注意:如果你從任何機器連接(你可以檢查源IP),這將停止。 –
是的,我正在做所有的地面工程。非常感謝.. – vels4j