erlexec

Build Status

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.

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

SUPPORTED OS's

Linux, Solaris, FreeBSD, MacOS X

DOCUMENTATION

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

BUILDING

NOTE: OTP releases 20.0 and below should use tag 1.8 or the otp20 branch. The reason is that the newer releases use incompatible syntax for getting stack trace that will cause compilation warning when obtained through erlang:get_stacktrace() function call.

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 make sure that libcap-dev[el] library is installed.

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

LICENSE

The program is distributed under BSD license. Copyright (c) 2003 Serge Aleynikov