Class ProcessKiller
- All Implemented Interfaces:
- ExtensionPoint,- Serializable
ProcessTree.
 Lifecycle
 Each implementation of ProcessKiller is instantiated once on the master.
 Whenever a process needs to be killed, those implementations are serialized and sent over
 to the appropriate agent, then the kill(ProcessTree.OSProcess) method is invoked
 to attempt to kill the process.
 
 One of the consequences of this design is that the implementation should be stateless
 and concurrent-safe. That is, the kill(ProcessTree.OSProcess) method can be invoked by multiple threads
 concurrently on the single instance.
 
 Another consequence of this design is that if your ProcessKiller requires configuration,
 it needs to be serializable, and configuration needs to be updated atomically, as another
 thread may be calling into kill(ProcessTree.OSProcess) just when you are updating your configuration.
- Since:
- 1.362
- Author:
- jpederzolli, Kohsuke Kawaguchi
- See Also:
- 
Nested Class SummaryNested classes/interfaces inherited from interface hudson.ExtensionPointExtensionPoint.LegacyInstancesAreScopedToHudson
- 
Constructor SummaryConstructors
- 
Method SummaryModifier and TypeMethodDescriptionstatic ExtensionList<ProcessKiller> all()Returns all the registeredProcessKillerdescriptors.abstract booleankill(ProcessTree.OSProcess process) Attempts to kill the given process.
- 
Constructor Details- 
ProcessKillerpublic ProcessKiller()
 
- 
- 
Method Details- 
allReturns all the registeredProcessKillerdescriptors.
- 
killpublic abstract boolean kill(ProcessTree.OSProcess process) throws IOException, InterruptedException Attempts to kill the given process.- Parameters:
- process- process to be killed. Always a local process.
- Returns:
- true if the killing was successful, and Hudson won't try to use other ProcessKillerimplementations to kill the process. false if the killing failed or is unattempted, and Hudson will continue to use the rest of theProcessKillerimplementations to try to kill the process.
- Throws:
- IOException- The caller will log this exception and otherwise treat as if the method returned false, and moves on to the next killer.
- InterruptedException- if the callee performs a time consuming operation and if the thread is canceled, do not catch- InterruptedExceptionand just let it thrown from the method.
 
 
-