Packages
erlexec
1.3.0
2.3.4
2.3.3
retired
2.3.2
retired
2.3.1
retired
2.3.0
retired
2.2.4
retired
2.2.3
retired
2.2.2
retired
2.2.1
retired
2.2.0
retired
2.0.8
retired
2.0.7
retired
2.0.6
retired
2.0.5
retired
2.0.4
retired
2.0.3
retired
2.0.2
retired
2.0.1
retired
2.0.0
retired
1.21.0
retired
1.20.1
retired
1.20.0
retired
1.19.1
retired
1.19.0
1.18.11
1.18.8
1.18.7
1.18.6
1.18.5
1.18.4
1.18.3
1.18.2
1.18.1
1.17.6
1.17.5
1.17.3
1.16.4
1.10.9
1.10.4
1.10.2
1.10.1
1.10.0
1.9.5
1.9.4
1.9.3
1.9.2
1.9.1
1.9.0
1.7.5
1.7.4
1.7.3
1.7.2
1.7.1
1.7.0
1.6.4
1.6.3
1.6.2
1.6.1
1.6.0
1.4.0
1.3.0
1.2.2
1.2.1
1.1.3
1.1.2
1.1.1
1.1.0
1.0.1
retired
OS Process Manager
Current section
Files
Jump to
Current section
Files
README.md
# 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](https://github.com/saleyn/erlexec/issues/73) issue. I don't
have a Mac, so cannot implement/test the solution. Essentially there
are two ways to approach this:
* Use `kqueue` and implement `EVFILT_SIGNAL` handling (see example in
[this](https://people.freebsd.org/~jlemon/papers/kqueue.pdf) paper).
* Block all signals in the main thread and create another one that
will set a suitable signal mask, and relay events to the main
thread's `select(3)` loop through a pipe.
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:
* Fedora, CentOS: "yum install libcap-devel"
* Ubuntu: "apt-get install libcap-dev"
```
$ 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>