job-security is a tool that lets you put your running programs into background, then bring them to the foreground anywhere you want.
It also supplements shells that doesn't natively support job control, such as nushell, elvish, etc.
- normal job control stuff: stopping things and putting them into the background, and resuming them later.
- job mobility: jobs are not tied to a terminal, you can resume stopped jobs wherever you want.
- starting/resuming jobs in the background.
- monitoring job statuses.
- preserving and retrieving logs from background jobs. output from background jobs won't invade your shell, and can be easily retrieved when needed.
cargo install job-security
- to run a command, use
jobs run command -- arguments
- to suspend/stop a running program, Ctrl-Z!
- to resume, use
jobs continue
- to list all jobs, use
jobs list
- Terminal environment is generally not preserved.
jobs
tries to preserve the current working directory, and environment variables for the commands it spawns, but not much more. If you define aliases, functions, etc. in your shell, those will not be visible to the command you run. - Not all shell expressions are supported. You can run zsh or bash expressions through
jobs
, as they will be automatically wrap inzsh -c
orbash -c
. But due to the limitations of other shells (e.g. nushell), commands are run as is, and not interpreted.