A Java library for reliably stopping processes with cross-platform graceful and forceful termination.
ZT Process Killer is a Java library that provides a reliable and cross-platform solution for stopping running processes. It solves the ambiguity of Java's native `Process.destroy()` method by offering consistent graceful and forceful termination across Windows and UNIX systems. The library abstracts both Java-started processes and system processes via PID, ensuring robust process management.
Java developers who need to manage external processes in applications, particularly those requiring cross-platform compatibility, such as build tools, CI/CD pipelines, or server applications.
Developers choose ZT Process Killer for its stable, well-tested API that simplifies process termination, eliminates platform-specific quirks, and provides features like timeout support and idempotent operations, reducing common errors in process management.
ZeroTurnaround Process Killer
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Solves the ambiguity of Java's native Process.destroy() by providing consistent graceful and forceful termination across Windows and UNIX systems, as highlighted in the motivation section.
Offers a single API for both Java-started processes and system processes via PID, using SystemProcess and PidProcess classes for seamless management.
All waiting methods include versions with and without timeouts, allowing precise control over process termination, as specified in the non-functional requirements.
Stopping a process that has already finished is treated as a success, reducing errors in cleanup code and improving reliability.
For system processes identified by PID, the library cannot access input/output streams or exit values, limiting use cases that require full process interaction.
Child process handling is only available on Windows via setIncludeChildren in WindowsProcess, with no equivalent feature for UNIX systems.
Introduces an external library dependency for functionality that might be handled with custom, lightweight platform-specific code in simpler projects.