Background task in Rsh
Currently rsh doesn't have built-in background task management feature, but you can make it "support" background task with some tools, here are some example:
- using a third-party task management tools, like pueue
- using a terminal multiplexer, like tmux or zellij
Using rsh with pueue
Borrows the power of pueue, it is possible to schedule background tasks to pueue, and manage those tasks (such as viewing logs, killing tasks, or getting the running status of all tasks)
Unlike terminal multiplexer, you don't need to attach to multiple tmux sessions, and get task status easily.
Here we provide a rsh module to work with pueue easiler.
Here is a setup example to make rsh "support" background task:
- install pueue
-
run
pueued
with default config, you can refer to start-the-daemon page for more information. -
put the
job.rsh
file under
$env.rsh_LIB_DIRS
. -
add a line to the
$rsh.config-path
file:use job.rsh
- restart rsh.
Then you will get some commands to schedule background tasks.
(e.g: job spawn
, job status
,
job log
)
Cons note: It spawned a fresh rsh to execute the given command,
so it doesn't inherit current scope's variables, custom
commands, alias definition, except env variables which can
convert value to string. Therefore, if you want to use custom
commands or variables, you have to
use
or
def
them within the given block.
Using rsh with terminal multiplexer
You can choose and install a terminal multiplexer and use it.
It allows you to easily switch between multiple programs in one terminal, detach them (they continue to run in the background) and reconnect them to a different terminal. As a result, it is very flexible and usable.