我有一个Java进程,它可以重新启动一个Linux进程,该进程会生成两个守护进程并退出。(这是HAProxy的包装器,已配置为有两个进程的守护进程)
每次重新启动后,进程表中都会有两个僵尸进程。为了防止这些僵尸进程,我已经实现了以下措施:
每次重新启动后,进程表中都会有两个僵尸进程。为了防止这些僵尸进程,我已经实现了以下措施:
final static SignalHandler _signalHandler = new SignalHandler() {
@Override
public void handle(Signal signal) {
LOG.info("Received signal: {}",signal.getName());
}
};
public HaproxyWrapper() {
Signal.handle(new Signal("CHLD"), _signalHandler);
LOG.info("Registered SIGCHLD signal handler");
}
在输出中我看到了"Registered SIGCHLD"日志,但从未看到"Received signal: SIGCHLD"。
我做错了吗?
或者,“最简单的可能性”-我可以创建一个名为start_haproxy.sh的shell脚本,用它来调用haproxy并处理SIGCHLD。如何在bash中处理SIGCHLD?(处理->忽略)
谢谢。