Package io.vertx.ext.shell.system

## Interface Job

-     public interface Job

  A job executed in a `JobController`, grouping one or several process.

  The job life cycle can be controlled with the `run()`, `resume()` and `suspend()` and `interrupt()` methods.
  Author:
    Julien Viet

- - ### Method Summary

    All Methods Instance Methods Abstract Methods Default Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `int` | `id()` |
    `boolean` | `interrupt()` | Attempt to interrupt the job.
    `long` | `lastStopped()` |
    `String` | `line()` |
    `Process` | `process()` |
    `default Job` | `resume()` | Resume the job to foreground.
    `Job` | `resume​(boolean foreground)` | Resume the job.
    `Job` | `run()` | Run the job, before running the job a `Tty` must be set.
    `Job` | `setSession​(Session session)` | Set a session on the job.
    `Job` | `setTty​(Tty tty)` | Set a tty on the job.
    `ExecStatus` | `status()` |
    `Job` | `statusUpdateHandler​(Handler<ExecStatus> handler)` | Set an handler called when the job terminates.
    `Job` | `suspend()` | Resume the job.
    `void` | `terminate()` | Terminate the job.
    `Job` | `toBackground()` | Send the job to background.
    `Job` | `toForeground()` | Send the job to foreground.

- - ### Method Detail

    - #### id

          int id()

      Returns:
        the job id

    - #### status

          ExecStatus status()

      Returns:
        the job exec status

    - #### lastStopped

          long lastStopped()

      Returns:
        when the job was last stopped

    - #### line

          String line()

      Returns:
        the execution line of the job, i.e the shell command line that launched this job

    - #### setTty

          Job setTty​(Tty tty)

      Set a tty on the job.
      Parameters:
        `tty` - the tty to use
      Returns:
        this object

    - #### setSession

          Job setSession​(Session session)

      Set a session on the job.
      Parameters:
        `session` - the session to use
      Returns:
        this object

    - #### statusUpdateHandler

          Job statusUpdateHandler​(Handler<ExecStatus> handler)

      Set an handler called when the job terminates.
      Parameters:
        `handler` - the terminate handler
      Returns:
        this object

    - #### run

          Job run()

      Run the job, before running the job a `Tty` must be set.
      Returns:
        this object

    - #### interrupt

          boolean interrupt()

      Attempt to interrupt the job.
      Returns:
        true if the job is actually interrupted

    - #### resume

          default Job resume()

      Resume the job to foreground.

    - #### toBackground

          Job toBackground()

      Send the job to background.
      Returns:
        this object

    - #### toForeground

          Job toForeground()

      Send the job to foreground.
      Returns:
        this object

    - #### resume

          Job resume​(boolean foreground)

      Resume the job.
      Parameters:
        `foreground` - true when the job is resumed in foreground

    - #### suspend

          Job suspend()

      Resume the job.
      Returns:
        this object

    - #### terminate

          void terminate()

      Terminate the job.

    - #### process

          Process process()

      Returns:
        the first process in the job