erlexec

Build StatusHex.pmHex.pm

Execute and control OS processes from Erlang/OTP.

This project implements an Erlang application with a C++ port program that gives light-weight Erlang processes fine-grain control over execution of OS processes.

The following features are supported:

This application provides significantly better control over OS processes than built-in erlang:open_port/2 command with a {spawn, Command} option, and performs proper OS child process cleanup when the emulator exits.

The erlexec application has been in production use by Erlang and Elixir systems, and is stable.

See http://saleyn.github.com/erlexec for more information.

SUPPORTED OS’s

Linux, Solaris, FreeBSD, OpenBSD, MacOS X

DOCUMENTATION

See http://saleyn.github.io/erlexec

BUILDING

Make sure you have rebar (http://github.com/basho/rebar or http://github.com/basho/rebar3) installed locally and the rebar script is in the path.

If you are deploying the application on Linux and would like to take advantage of exec-port running tasks using effective user IDs different from the real user ID that started exec-port, then either make sure that libcap-dev[el] library is installed or make sure that the user running the port program has sudo rights.

OS-specific libcap-dev installation instructions:

$ git clone git@github.com:saleyn/erlexec.git
$ make

# NOTE: for enabling optimized build of exec-port, do the following instead:
$ OPTIMIZE=true make

By default port program’s implementation uses poll(2) call for event demultiplexing. If you prefer to use select(2), set the following environment variable:

$ USE_POLL=0 make

LICENSE

The program is distributed under BSD license. Copyright (c) 2003 Serge Aleynikov <saleyn at gmail dot com>