IProgramRunner over the host: processes through hive-system (process.core
spawns, process.liveness answers for a pid, shell.core/exec! signals),
build files through EDN reads.
A program starts as sh -c 'exec setsid <command> >> <log> 2>&1': the shell
replaces itself with the program in a session of its own, so the spawned pid
is the program's and its process group's. The group is what -stop!
signals, which reaches the JVMs and node processes a watch forks. The pid is
all that is kept, so a program outlives the addon and is stopped by pid after
a restart.
IProgramRunner over the host: processes through hive-system (`process.core` spawns, `process.liveness` answers for a pid, `shell.core/exec!` signals), build files through EDN reads. A program starts as `sh -c 'exec setsid <command> >> <log> 2>&1'`: the shell replaces itself with the program in a session of its own, so the spawned pid is the program's and its process group's. The group is what `-stop!` signals, which reaches the JVMs and node processes a watch forks. The pid is all that is kept, so a program outlives the addon and is stopped by pid after a restart.
(make-runner opts)HostRunner. opts: :spawn (default hive-system process.core/spawn!), :exec
(default shell.core/exec!), :alive? (default process.liveness/alive?),
:compose/stop-grace-ms before a group is killed (default 5000).
HostRunner. `opts`: :spawn (default hive-system `process.core/spawn!`), :exec (default `shell.core/exec!`), :alive? (default `process.liveness/alive?`), :compose/stop-grace-ms before a group is killed (default 5000).
cljdoc builds & hosts documentation for Clojure/Script libraries
| Ctrl+k | Jump to recent docs |
| ← | Move to previous article |
| → | Move to next article |
| Ctrl+/ | Jump to the search field |