Class ShutdownHookProcessDestroyer

java.lang.Object
org.apache.commons.exec.ShutdownHookProcessDestroyer
All Implemented Interfaces:
Runnable, ProcessDestroyer

Destroys all registered Processes when the VM exits.
  • Constructor Summary

    Constructors
    Constructor
    Description
    Constructs a ProcessDestroyer and obtains Runtime.addShutdownHook() and Runtime.removeShutdownHook() through reflection.
  • Method Summary

    Modifier and Type
    Method
    Description
    boolean
    add(Process process)
    Returns true if the specified Process was successfully added to the list of processes to destroy upon VM exit.
    boolean
    Tests whether or not the ProcessDestroyer is registered as shutdown hook.
    boolean
    Tests emptiness (size == 0).
    boolean
    remove(Process process)
    Returns true if the specified Process was successfully removed from the list of processes to destroy upon VM exit.
    void
    run()
    Invoked by the VM when it is exiting.
    int
    Returns the number of registered processes.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • ShutdownHookProcessDestroyer

      Constructs a ProcessDestroyer and obtains Runtime.addShutdownHook() and Runtime.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, this ProcessDestroyer is registered as a shutdown hook. If removing a process results in an empty list, the ProcessDestroyer is removed as a shutdown hook.
  • Method Details

    • add

      public boolean add(Process process)
      Returns true if the specified Process was successfully added to the list of processes to destroy upon VM exit.
      Specified by:
      add in interface ProcessDestroyer
      Parameters:
      process - the process to add.
      Returns:
      true if the specified Process was successfully added.
    • 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

      public boolean remove(Process process)
      Returns true if the specified Process was successfully removed from the list of processes to destroy upon VM exit.
      Specified by:
      remove in interface ProcessDestroyer
      Parameters:
      process - the process to remove.
      Returns:
      true if the specified Process was successfully removed.
    • run

      public void run()
      Invoked by the VM when it is exiting.
      Specified by:
      run in interface Runnable
    • size

      public int size()
      Returns the number of registered processes.
      Specified by:
      size in interface ProcessDestroyer
      Returns:
      the number of register process.