Java:如何仅处理SIGTERM?
Java中有没有一种方法可以处理接收到的SIGTERM 我正在运行java服务,但不想在用户注销时关闭java服务 只覆盖sigterm shutdown处理程序,但保留其余信号的处理程序Java:如何仅处理SIGTERM?,java,exit,sigterm,Java,Exit,Sigterm,Java中有没有一种方法可以处理接收到的SIGTERM 我正在运行java服务,但不想在用户注销时关闭java服务 只覆盖sigterm shutdown处理程序,但保留其余信号的处理程序 如果传递给句柄的信号具有名称“TERM”,则执行操作,否则忽略它 class MySignalHandler implements SignalHandler { public void handle(Signal sig) { if (!"TERM".equals(sig.getName())
如果传递给
句柄的信号具有名称“TERM”
,则执行操作,否则忽略它
class MySignalHandler implements SignalHandler {
public void handle(Signal sig) {
if (!"TERM".equals(sig.getName())) {
SigHandler.SIG_DFL.handle(sig);
return;
}
// Handling code goes here.
}
}
你链接到的解释中有哪些部分你不明白?我很困惑-为什么当用户注销时服务会失效?理想情况下,您的服务应该满足来自多个用户的多个请求,不是吗?请发布一段代码,解释代码运行的环境,并描述代码运行不符合预期的情况。我使用Windows XP服务来运行我的程序。即使在用户登录或注销时,它也应该继续运行。但是当初始化关闭时,服务也应该关闭。当前当用户注销时,服务将退出(不需要的行为)。因此,我只想覆盖Sigterm的处理,但保留原始JVM处理程序的其余部分。