The jobs facility lets you reference an existing job,
access data about an existing job, or display a list
of current jobs.
You reference the process ID of a job with a percent sign, and either the job number, a string from the job command text, '%' for default job, or '-' for previous default job:
mpsh$ kill -9 %3 mpsh$ kill -9 %gcc mpsh$ kill -9 %% mpsh$ kill -9 %-
You can get other information about a job by adding a dot and a field name to a job reference. The available fields are:
hist - History entry number.
Go to the directory the current vi job was started in:
mpsh$ cd %vi.dir
Show the full history details for the current make job:
mpsh$ history %make.hist
The jobs command displays the current jobs. You can display the short form, long form, user-specified format, or full details for one entry. ("jobs" with no arguments is short for "jobs -s".)
mpsh$ jobs [%job] mpsh$ jobs -s [%job] mpsh$ jobs -l [%job] mpsh$ jobs format-string [%job]
The fields displayed by the jobs command are controlled by format strings, one letter for each field. The simple "jobs -s" display is controlled by the mpsh-jobs-disp environment variable (default: anrcm, for: name, number, run status, command text, optional multi-process count), and the long format is controlled by the mpsh-jobs-disp-l environment variable (default: aeRhfcm, for: name, elapsed time, long run status, history entry number, foreground order, command text, optional multi-process count). You can also specify an arbitrary format as the argument to jobs.
The fields available via the format strings are:
c - Command
Show all current jobs, long format:
mpsh$ jobs -l
Show current "make" job, long format:
mpsh$ jobs -l %make
Show the elapsed time and command for current "make" job,
mpsh$ jobs ec %make
Another way to change directory to where a job was started:
mpsh$ cd (jobs d %make)
Make the jobs display approximate bash/ksh/etc behaviour:
mpsh$ setenv mpsh-jobs-disp=nfRc mpsh$ setenv mpsh-jobs-disp-l=nfpRc
The width of the fields displayed changes depending on the data, so don't try to filter the output of jobs based on strict character position.
You can delete a job with the "-d" option. This simply makes mpsh forget about the job. The process will continue to run, but it will not appear in the jobs display, and you will not receive notification when it exits. (You can still find the status of a deleted job by looking up its history entry.)
mpsh$ jobs -d %job
You can also name a job. The job name can then be used for job expansion: %Name, job exit notification, and can be displayed in jobs or jobs -l with the "a" format field.
mpsh$ jobs -n %job name