[erlang-questions] running multiple instance of app release
Fri Apr 25 17:27:57 CEST 2014
Thanks for the responses. This is not quite what I am trying to achieve.
I do not know at build time how many, etc. nodes or release are required. I want to build a release in a way that the users of the release can run multiple, 1 or 1000, instances of that release. As an example, say I write a replacement for the tcpdump utility. I need to produce a release that could be installed on a linux box and then any number of users on the box could run my new utility, all at the same time in separate erlang nodes.
The method that rabbitmq uses to delivery their broker does this, but it depends on erlang being installed on the host, etc. I am trying to achieve the same but with a release so that the users of the application do not need to install erlang, and any other libs my application uses.
The approach taken by rabbitmq is not so bad on systems with good package management, like debian, since I can handle the external dependencies within the debian package. It's just not as clean as erlang releases.
Cheyenne Software Engineering
“We, the unwilling, led by the unknowing, are doing the impossible for the ungrateful. We have done so much, for so long, with so little, we are now qualified to do anything with nothing.”
― Mother Teresa
On Apr 24, 2014, at 11:31 PM, Dmitry Kolesnikov <> wrote:
> The technique is called variable overlay. Here is nice tutorial.
> In practice, you are running independent release assembled from same code base.
> Best Regards,
>> On 25 Apr 2014, at 00:31, Alex Shneyderman <> wrote:
>> have a look at the two links below for inspiration:
>> their technique is to provide per instance/node parameter files and
>> generate separate releases for each node (specifying parameter files
>> to rebar on command line and specifying output directory). They both
>> use riak-core but you could copy their use of rebar without the need
>> for riak-core.
>>> On Thu, Apr 24, 2014 at 5:09 PM, Geib, Mark <> wrote:
>>> I recently decided to change the way I build erlang applications for delivery to my internal customers. Prior to this change my deliverable was basically the ebin, maybe the include, directory for my application that would be located in /usr/lib/me/lib/myapps/.... To run the application I would export ERL_LIBS as /usr/lib/me/ the start the node with -sname -config, etc. and off it went. In this way I can run the application many times with different -sname args.
>>> Now I am building releases with rebar. However, one thing I don't understand is how I can run more than one instance of the application on the same host. It appears that the generated script for starting/stopping the application does not support command line options/arguments. Without being able to set the node name how can run the same app more than once.
>>> Releases are very attractive for my group, but what we need is to able to do something like:
>>> /opt/me/myapp/bin/myapp start -sname node01 -config node01
>>> and then
>>> /opt/me/myapp/bin/myapp start -sname node02 -config node02
>>> Mark Geib
>>> Principal Engineer
>>> Cheyenne Software Engineering
>>> / 35-215
>>> “We, the unwilling, led by the unknowing, are doing the impossible for the ungrateful. We have done so much, for so long, with so little, we are now qualified to do anything with nothing.”
>>> ― Mother Teresa
>>> erlang-questions mailing list
>> erlang-questions mailing list
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 203 bytes
Desc: Message signed with OpenPGP using GPGMail
More information about the erlang-questions