erlexec

Execute and control OS processes from Erlang/OTP.

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

It makes possible for an Erlang process to start, stop an OS process, send POSIX signals, know process IDs of a started OS process, set up a monitor or link to it, run interactive commands with pseudo terminals. This application provides 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.

HELP WANTED!

There is a portability issue with a call to sigwaitinfo(2) that is missing on Mac OS X (example is describeed in this issue. I don't have a Mac, so cannot implement/test the solution. Essentially there are two ways to approach this:

Contact the author if interested to help.

SUPPORTED OS's

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

OS-specific libcap-dev installation instructions:

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

LICENSE

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