Last modified 3 weeks ago Last modified on 04.10.2017 21:42:32

subproc

Description

Subprocess manager for Erlang, providing more tools to work with unix processes and ports with a backpressure ({active,once} and passive modes).

subproc is a unix subprocess manager for Erlang. It works much closer with operating systems than Erlang, so over built-in ports it provides several advantages:

  • tracks subprocess' PID
  • can spawn a subprocess in a process group
  • can send a signal to a subprocess or its process group
  • subprocess' STDIO can be redirected with pipe(2) or socketpair(2)
  • spawned port can work in {active,once} and passive modes known from gen_tcp and other socket modules, which provides a sensible backpressure to external command (running yes(1) won't trigger OOM killer)

subproc can also spawn ports from already-opened descriptors, which is mainly intended for reading from STDIN with backpressure.

For details on usage, see local copy of API documentation.

How to download

Canonical repository location is at jarowit.

git clone http://dozzie.jarowit.net/code/erlang-subproc.git

There is a supplementary location at GitHub.

git clone https://github.com/dozzie/subproc

How to install

manual build

The process boils down to running make all. *.beam files and auxiliary binaries will be stored in ./ebin and ./priv directories.

The EDoc documentation can be generated using make doc.