Spawn is a small library exposing only one function:
Spawn.spawn
. Its purpose is to start command in the
background. Spawn aims to provide a few missing features of
Unix.create_process
such as providing a working directory as well as
improving error reporting and performance.
Errors such as directory or program not found are properly reported as
Unix.Unix_error
exceptions, on both Unix and Windows.
On Unix, Spawn uses vfork
by default as it is often a lot faster
than fork. There is a benchmark comparing Spawn.spawn
to
Unix.create_process
in spawn-lib/bench
. If you don't trust
vfork
, you can set the environment variable SPAWN_USE_FORK
to make
Spawn use fork
instead.