2 releases

0.1.1 Apr 21, 2023
0.1.0 Apr 20, 2023

#5 in #resuming

Download history 12/week @ 2023-11-03 10/week @ 2023-11-10 18/week @ 2023-11-17 17/week @ 2023-11-24 14/week @ 2023-12-01 9/week @ 2023-12-08 14/week @ 2023-12-15 17/week @ 2023-12-22 5/week @ 2023-12-29 14/week @ 2024-01-05 13/week @ 2024-01-12 10/week @ 2024-01-19 11/week @ 2024-01-26 9/week @ 2024-02-02 17/week @ 2024-02-09 48/week @ 2024-02-16

85 downloads per month
Used in 3 crates

MIT/Apache

8KB
164 lines

job-security - job control from anywhere!

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.

Demo

termtosvg_053kx7nv

Features

  • 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.

Installation

cargo install job-security

Usage

  • 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
    

Limitations

  • 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 in zsh -c or bash -c. But due to the limitations of other shells (e.g. nushell), commands are run as is, and not interpreted.

Dependencies

~3.5–5MB
~89K SLoC