Class ShutdownHookProcessDestroyer
java.lang.Object
org.apache.commons.exec.ShutdownHookProcessDestroyer
- All Implemented Interfaces:
Runnable, ProcessDestroyer
Destroys all registered
Processes when the VM exits.-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprivate final class -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final AtomicBooleanWhether or not this ProcessDestroyer has been registered as a shutdown hook.The thread registered at the JVM to execute the shutdown handler.The list of currently running processes.private final AtomicBooleanWhether or not this ProcessDestroyer is currently running as shutdown hook. -
Constructor Summary
ConstructorsConstructorDescriptionConstructs aProcessDestroyerand obtainsRuntime.addShutdownHook()andRuntime.removeShutdownHook()through reflection. -
Method Summary
Modifier and TypeMethodDescriptionbooleanReturnstrueif the specifiedProcesswas successfully added to the list of processes to destroy upon VM exit.private voidRegisters thisProcessDestroyeras a shutdown hook.booleanTests whether or not the ProcessDestroyer is registered as shutdown hook.booleanisEmpty()Tests emptiness (size == 0).booleanReturnstrueif the specifiedProcesswas successfully removed from the list of processes to destroy upon VM exit.private voidRemoves thisProcessDestroyeras a shutdown hook.voidrun()Invoked by the VM when it is exiting.intsize()Returns the number of registered processes.
-
Field Details
-
processes
-
destroyProcessThread
The thread registered at the JVM to execute the shutdown handler. -
added
Whether or not this ProcessDestroyer has been registered as a shutdown hook. -
running
Whether or not this ProcessDestroyer is currently running as shutdown hook.
-
-
Constructor Details
-
ShutdownHookProcessDestroyer
public ShutdownHookProcessDestroyer()Constructs aProcessDestroyerand obtainsRuntime.addShutdownHook()andRuntime.removeShutdownHook()through reflection. The ProcessDestroyer manages a list of processes to be destroyed when the VM exits. If a process is added when the list is empty, thisProcessDestroyeris registered as a shutdown hook. If removing a process results in an empty list, theProcessDestroyeris removed as a shutdown hook.
-
-
Method Details
-
add
Returnstrueif the specifiedProcesswas successfully added to the list of processes to destroy upon VM exit.- Specified by:
addin interfaceProcessDestroyer- Parameters:
process- the process to add.- Returns:
trueif the specifiedProcesswas successfully added.
-
addShutdownHook
private void addShutdownHook()Registers thisProcessDestroyeras a shutdown hook. -
isAddedAsShutdownHook
public boolean isAddedAsShutdownHook()Tests whether or not the ProcessDestroyer is registered as shutdown hook.- Returns:
- true if this is currently added as shutdown hook.
-
isEmpty
public boolean isEmpty()Tests emptiness (size == 0).- Returns:
- Whether or not this is empty.
- Since:
- 1.4.0
-
remove
Returnstrueif the specifiedProcesswas successfully removed from the list of processes to destroy upon VM exit.- Specified by:
removein interfaceProcessDestroyer- Parameters:
process- the process to remove.- Returns:
trueif the specifiedProcesswas successfully removed.
-
removeShutdownHook
private void removeShutdownHook()Removes thisProcessDestroyeras a shutdown hook. -
run
-
size
public int size()Returns the number of registered processes.- Specified by:
sizein interfaceProcessDestroyer- Returns:
- the number of register process.
-