Package hudson
Class Proc
- java.lang.Object
-
- hudson.Proc
-
- Direct Known Subclasses:
Launcher.RemoteLauncher.ProcImpl
,Proc.LocalProc
,Proc.RemoteProc
public abstract class Proc extends Object
External process wrapper.Used for launching, monitoring, waiting for a process.
- Author:
- Kohsuke Kawaguchi
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
Proc.LocalProc
Locally launched process.static interface
Proc.ProcWithJenkins23271Patch
An instance ofProc
, which has an internal workaround for JENKINS-23271.static class
Proc.RemoteProc
Deprecated.as of 1.399.
-
Field Summary
Fields Modifier and Type Field Description static boolean
SHOW_PID
Debug switch to have the thread display the process it's waiting for.
-
Constructor Summary
Constructors Modifier Constructor Description protected
Proc()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description abstract InputStream
getStderr()
Returns anInputStream
to read fromstderr
of the child process.abstract OutputStream
getStdin()
Returns anOutputStream
to write tostdin
of the child process.abstract InputStream
getStdout()
Returns anInputStream
to read fromstdout
of the child process.abstract boolean
isAlive()
Checks if the process is still alive.abstract int
join()
Waits for the completion of the process.int
joinWithTimeout(long timeout, TimeUnit unit, TaskListener listener)
Likejoin()
but can be given a maximum time to wait.abstract void
kill()
Terminates the process.
-
-
-
Method Detail
-
isAlive
public abstract boolean isAlive() throws IOException, InterruptedException
Checks if the process is still alive.- Throws:
IOException
InterruptedException
-
kill
public abstract void kill() throws IOException, InterruptedException
Terminates the process.- Throws:
IOException
- if there's an error killing a process and a stack trace could help the trouble-shooting.InterruptedException
-
join
public abstract int join() throws IOException, InterruptedException
Waits for the completion of the process. Unless the caller opts to pump the streams viagetStdout()
etc., this method also blocks until we finish reading everything that the process has produced to stdout/stderr.If the thread is interrupted while waiting for the completion of the process, this method terminates the process and exits with a non-zero exit code.
- Throws:
IOException
- if there's an error launching/joining a process and a stack trace could help the trouble-shooting.InterruptedException
-
getStdout
@CheckForNull public abstract InputStream getStdout()
Returns anInputStream
to read fromstdout
of the child process.When this method returns null,
Proc
will internally pump the output from the child process to yourOutputStream
of choosing.- Returns:
null
unlessLauncher.ProcStarter.readStdout()
is used to indicate that the caller intends to pump the stream by itself.- Since:
- 1.399
-
getStderr
@CheckForNull public abstract InputStream getStderr()
Returns anInputStream
to read fromstderr
of the child process.When this method returns null,
Proc
will internally pump the output from the child process to yourOutputStream
of choosing.- Returns:
null
unlessLauncher.ProcStarter.readStderr()
is used to indicate that the caller intends to pump the stream by itself.- Since:
- 1.399
-
getStdin
@CheckForNull public abstract OutputStream getStdin()
Returns anOutputStream
to write tostdin
of the child process.When this method returns null,
Proc
will internally pump theInputStream
of your choosing to the child process.- Returns:
null
unlessLauncher.ProcStarter.writeStdin()
is used to indicate that the caller intends to pump the stream by itself.- Since:
- 1.399
-
joinWithTimeout
public final int joinWithTimeout(long timeout, TimeUnit unit, TaskListener listener) throws IOException, InterruptedException
Likejoin()
but can be given a maximum time to wait.- Parameters:
timeout
- number of time unitsunit
- unit of timelistener
- place to send messages if there are problems, incl. timeout- Returns:
- exit code from the process
- Throws:
IOException
- for the same reasons asjoin()
InterruptedException
- for the same reasons asjoin()
- Since:
- 1.363
-
-