A JVMTI agent that forcibly terminates the JVM when it cannot allocate memory or create threads.
jvmkill is a JVMTI agent that forcibly terminates the Java Virtual Machine when it exhausts critical resources like memory or thread allocation capacity. It solves the problem of JVM instability following `OutOfMemoryError` or thread creation failures by ensuring a clean exit, allowing external process managers to restart the application.
Java developers and system administrators running long-lived JVM applications in production environments where reliability and automatic recovery are critical.
Developers choose jvmkill because it provides a more reliable alternative to native JVM options, covering both memory and thread allocation failures while remaining compatible with heap dump diagnostics for post-mortem analysis.
Terminate the JVM when resources are exhausted
Immediately kills the JVM upon OutOfMemoryError or thread creation failure, preventing inconsistent states as described in the README's overview.
Compatible with -XX:+HeapDumpOnOutOfMemoryError, allowing diagnostic heap dumps before termination, per the README's notes on heap dump compatibility.
Addresses thread allocation failures that native JVM options like -XX:ExitOnOutOfMemoryError do not handle, based on the alternatives section.
Easily integrated via JVM arguments or environment variables without significant overhead, as shown in the usage instructions.
Forcibly terminates the JVM without allowing application-level recovery or cleanup, which might not suit systems needing controlled degradation.
Needs to be built with a specific JDK and integrated into JVM startup, adding deployment complexity compared to built-in options, as indicated in the building section.
Beyond enabling heap dumps, it doesn't provide additional logging or metrics to diagnose failure root causes, relying solely on termination.
Java unlimited redefinition of classes at runtime.
Fast JVM launching without the hassle of persistent JVMs.
Dead-Simple Packaging and Deployment for JVM Apps
The shell for the Java Platform
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.