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 a kill 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 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

        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 launched
        java.lang.InterruptedException - if the calling thread is interrupted while waiting