Job control for the xonsh shell.


Add a new job to the jobs dictionary.

xonsh.jobs.bg(args, stdin=None)[source]#

xonsh command: bg

Resume execution of the currently active job in the background, or, if a single number is given as an argument, resume that job in the background.


Clean up jobs for exiting shell

In non-interactive mode, send SIGHUP to all jobs.

In interactive mode, check for suspended or background jobs, print a warning if any exist, and return False. Otherwise, return True.

xonsh.jobs.disown_fn(job_ids: Sequence[int], force_auto_continue=False)[source]#

Remove the specified jobs from the job table; the shell will no longer report their status, and will not complain if you try to exit an interactive shell with them running or stopped.

If the jobs are currently stopped and the $AUTO_CONTINUE option is not set ($AUTO_CONTINUE = False), a warning is printed containing information about how to make them continue after they have been disowned.


Jobs to act on or none to disown the current job

force_auto_continue-c, –continue

Automatically continue stopped jobs when they are disowned, equivalent to setting $AUTO_CONTINUE=True

xonsh.jobs.fg(args, stdin=None)[source]#

xonsh command: fg

Bring the currently active job to the foreground, or, if a single number is given as an argument, bring that job to the foreground. Additionally, specify “+” for the most recent job and “-” for the second most recent job.

xonsh.jobs.format_job_string(num: int) str[source]#
xonsh.jobs.get_jobs() Dict[int, Dict][source]#

Get the lowest available unique job number (for the next job created).


Get the next active task and put it on top of the queue

xonsh.jobs.get_tasks() Deque[int][source]#

Send SIGHUP to all child processes (called when exiting xonsh).

xonsh.jobs.job_id_completer(xsh, **_)[source]#

Return currently running jobs ids

xonsh.jobs.jobs(args, stdin=None, stdout=<_io.TextIOWrapper name='<stdout>' mode='w' encoding='utf-8'>, stderr=None)[source]#

xonsh command: jobs

Display a list of all current jobs.

xonsh.jobs.print_one_job(num, outfile=<_io.TextIOWrapper name='<stdout>' mode='w' encoding='utf-8'>)[source]#

Print a line describing job number num.

xonsh.jobs.resume_job(args, wording: Literal['fg', 'bg'])[source]#

used by fg and bg to resume a job either in the foreground or in the background.


Context manager that replaces a thread’s task queue and job dictionary with those of the main thread

This allows another thread (e.g. the commands jobs, disown, and bg) to handle the main thread’s job control.

xonsh.jobs.wait_for_active_job(last_task=None, backgrounded=False, return_error=False)[source]#

Wait for the active job to finish, to be killed by SIGINT, or to be suspended by ctrl-z.