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

    Modifier and Type
    Method
    Description
    void
    Terminate job process execution (if still running) or prevent it from launching (if not launched yet).
    void
    launchProcess(File jobDirectory, File jobScript, boolean interactive, Integer timeout, boolean launchInJobDirectory)
    Launch the job process (unless launch was aborted by previous a kill call).
    Wait indefinitely for the job process to terminate.
  • Method Details

    • launchProcess

      void launchProcess(File jobDirectory, File jobScript, boolean interactive, @Nullable Integer timeout, boolean launchInJobDirectory) throws JobLaunchException
      Launch the job process (unless launch was aborted by previous a kill call).
      Parameters:
      jobDirectory - Job directory
      jobScript - 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 it
      launchInJobDirectory - 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 - The KillService.KillSource value representing where this kill request is coming from
    • waitFor

      Wait indefinitely for the job process to terminate.
      Returns:
      KILLED, SUCCESSFUL, or FAILED
      Throws:
      IllegalStateException - if the process was not launched
      InterruptedException - if the calling thread is interrupted while waiting