Package hudson.util
Class ProcessTree.OSProcess
java.lang.Object
hudson.util.ProcessTree.OSProcess
- All Implemented Interfaces:
ProcessTreeRemoting.IOSProcess
,Serializable
- Direct Known Subclasses:
ProcessTree.UnixProcess
- Enclosing class:
- ProcessTree
public abstract class ProcessTree.OSProcess
extends Object
implements ProcessTreeRemoting.IOSProcess, Serializable
Represents a process.
- See Also:
-
Method Summary
Modifier and TypeMethodDescription<T> T
act
(ProcessTree.ProcessCallable<T> callable) Executes a chunk of code at the same machine where this process resides.Gets the command-line arguments of this process.final List<ProcessTree.OSProcess>
Immediate child processes.abstract EnvVars
Obtains the environment variables of this process.abstract ProcessTree.OSProcess
Gets the parent process.final int
getPid()
protected ProcessKillingVeto.VetoCause
getVeto()
final boolean
hasMatchingEnvVars
(Map<String, String> modelEnvVar) Given the environment variable of a process and the "model environment variable" that Hudson used for launching the build, returns true if there's a match (which means the process should be considered a descendant of a build.)abstract void
kill()
Kills this process.abstract void
Kills this process and all the descendants.
-
Method Details
-
getPid
public final int getPid()- Specified by:
getPid
in interfaceProcessTreeRemoting.IOSProcess
-
getParent
Gets the parent process. This method may return null, because there's no guarantee that we are getting a consistent snapshot of the whole system state.- Specified by:
getParent
in interfaceProcessTreeRemoting.IOSProcess
-
getChildren
Immediate child processes. -
kill
Kills this process.- Specified by:
kill
in interfaceProcessTreeRemoting.IOSProcess
- Throws:
InterruptedException
-
killRecursively
Kills this process and all the descendants.Note that the notion of "descendants" is somewhat vague, in the presence of such things like daemons. On platforms where the recursive operation is not supported, this just kills the current process.
- Specified by:
killRecursively
in interfaceProcessTreeRemoting.IOSProcess
- Throws:
InterruptedException
-
getVeto
- Returns:
- The first non-null
ProcessKillingVeto.VetoCause
provided by a process killing veto extension for this OSProcess. null if no one objects killing the process.
-
getArguments
Gets the command-line arguments of this process.On Windows, where the OS models command-line arguments as a single string, this method computes the approximated tokenization.
- Specified by:
getArguments
in interfaceProcessTreeRemoting.IOSProcess
-
getEnvironmentVariables
Obtains the environment variables of this process.- Specified by:
getEnvironmentVariables
in interfaceProcessTreeRemoting.IOSProcess
- Returns:
- empty map if failed (for example because the process is already dead, or the permission was denied.)
-
hasMatchingEnvVars
Given the environment variable of a process and the "model environment variable" that Hudson used for launching the build, returns true if there's a match (which means the process should be considered a descendant of a build.) -
act
Executes a chunk of code at the same machine where this process resides.- Specified by:
act
in interfaceProcessTreeRemoting.IOSProcess
- Throws:
IOException
InterruptedException
-