About local jobs on Linux® and UNIX

You can include a local job in the flow diagram.

A local job is a job that will execute immediately on the Process Manager host without going through LSF®. A local job is usually a short and small job. It is not recommended to run long, computational-intensive or data-intensive local jobs as it can overload the Process Manager host.

A local job is non-blocking: that is, several local jobs can run in parallel.

Controlling a local job

You can kill a local job in the same way as you kill any other job. The local job may also be killed as a result of the flow being killed.

If you suspend or resume a flow that contains local jobs, the local jobs will also be suspended or resumed.

In some cases, you may not want to suspend a local job when the flow is suspended. You can select Disable suspension for this job in the Job Definition. If job suspension is disabled, and the job is running when the flow is suspended, the job will not be suspended. The job will continue to run.

The following signals are sent to the local job:

  • Kill—The system sends SIGINT, waits for 10 seconds, SIGTERM, waits for 10 seconds, then SIGKILL. The 10 second delay between signals allows you to catch the signal and perform any cleanup required by the job before it is terminated.
  • Suspend—The system sends SIGSTOP.
  • Resume—The system sends SIGCONT.

In the job’s runtime attributes, you can view the exit status and CPU usage of a local job after the job completes. The process ID identifies the local job and you can view CPU usage for the job. You can also view the process ID of the job and CPU usage information with jflows -l flow_id and jhist -C job.

Parameters related to local jobs

By default, a local job can run indefinitely, it does not have a timeout. To define a timeout value for a local job so that it will be killed if it was running for too long, use the parameter JS_LOCAL_EXECUTION_TIMEOUT in js.conf.

To avoid overloading the Process Manager host with too many local jobs, the parameter JS_LOCAL_JOBS_LIMIT in js.conf controls the maximum number of local jobs that can run concurrently on the Process Manager host.

For security reasons, you may want to disable local jobs altogether. You can disable local jobs by setting the parameter JS_LOCAL_JOBS_LIMIT=0 in js.conf.

jfd and eem.local

To monitor local jobs, jfd communicates with eem.local. This binary is started by jfd, handles job submission, control, and status checking for local jobs, and reports back to jfd.

jfd listens on the port number JS_PORT + 1 to receive status updates from eem.local, and eem.local listens on port number JS_PORT + 2 . The parameter JS_PORT is defined in js.conf.

Should jfd terminate abnormally, when it restarts it can recover running and finished local jobs and determine their status and resource usage.