Interface JobProcessManager
-
- All Known Implementing Classes:
JobProcessManagerImpl
public interface JobProcessManager
Singleton to manage the subprocess for the actual user job this Agent instance is managing.- Since:
- 4.0.0
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description void
kill(KillService.KillSource source)
Terminate job process execution (if still running) or prevent it from launching (if not launched yet).void
launchProcess(java.io.File jobDirectory, java.io.File jobScript, boolean interactive, java.lang.Integer timeout, boolean launchInJobDirectory)
Launch the job process (unless launch was aborted by previous akill
call).JobProcessResult
waitFor()
Wait indefinitely for the job process to terminate.
-
-
-
Method Detail
-
launchProcess
void launchProcess(java.io.File jobDirectory, java.io.File jobScript, boolean interactive, @Nullable java.lang.Integer timeout, boolean launchInJobDirectory) throws JobLaunchException
Launch the job process (unless launch was aborted by previous akill
call).- Parameters:
jobDirectory
- Job directoryjobScript
- job script (a.k.a. run file)interactive
- launch in interactive mode (inherit I/O) or batch (no input, write outputs to files)timeout
- The optional number of seconds this job is allowed to run before the system will kill itlaunchInJobDirectory
- launch the job process from the job directory rather than the current directory- Throws:
JobLaunchException
- if the job process failed to launch
-
kill
void kill(KillService.KillSource source)
Terminate job process execution (if still running) or prevent it from launching (if not launched yet). Optionally sends SIGINT to the process (unnecessary under certain circumstances. For example, CTRL-C in a terminal session, is already received by the job process, issuing a second one is unneeded).- Parameters:
source
- TheKillService.KillSource
value representing where this kill request is coming from
-
waitFor
JobProcessResult waitFor() throws java.lang.InterruptedException
Wait indefinitely for the job process to terminate.- Returns:
- KILLED, SUCCESSFUL, or FAILED
- Throws:
java.lang.IllegalStateException
- if the process was not launchedjava.lang.InterruptedException
- if the calling thread is interrupted while waiting
-
-