[erlang-questions] What's the proper/right way to run erlang in the background?

Sam Bobroff <>
Tue Oct 22 05:02:53 CEST 2013


There is also a third-party tool, erld, that helps with running Erlang as a well behaved unix daemon. (Disclaimer: I'm the author.)

It's described here: https://github.com/ShoreTel-Inc/erld/wiki

Cheers,
Sam.

On 21/10/2013, at 11:09 PM, Michael Scofield <<mailto:>> wrote:

Hi all! I'm new to erlang for a few month.

Recently I've developed a small pure erlang program, and it runs well in the shell. Now I want to run it in the background, as a daemon service process in the os (mine is Ubuntu 12.04 64bit with R16B). So I googled "run erlang without shell", and google gave me some advice:

1. Using escript. -This is what erlang official faq suggested ( http://www.erlang.org/faq/how_do_i.html).
2. erl -detached -s Module Function Args

I tried both. As to #1, my escript goes to

#!/usr/bin/env escript
main(_) ->
  my_supervisor:start_link(arg1, arg2).

I ran it using "nohup ./my-escript &", and it didn't run my code. =(

So I went to #2. I was acknowledged that "-s" can only pass 0 or 1 argument, so I wrapped my supervisor using

-module(run).
-export([start/0]).

start() ->
  my_supervisor:start_link(arg1, arg2).

and ran my code as "erl -detached -s run start". But this was also a dead end.

I guessed it's because the run:start/0 just returned and finished the shell(Is it?), so I added a line to the run:start/0:

-module(run).
-export([start/0]).

start() ->
  my_supervisor:start_link(arg1, arg2),
  receive after infinity -> stop end.

And executed "erl -detached -s run start", and everything goes fine! my_supervisor started to work without the shell!

Though the problem "solved", I'm very very confused.
1. Why the "magic line" solved my problem?
2. What exactly is the proper or right way to run an erlang application in the background as the command "nohup ... &" does?

Thanks in advance!

Michael
_______________________________________________
erlang-questions mailing list
<mailto:>
http://erlang.org/mailman/listinfo/erlang-questions


________________________________

This e-mail and any attachments are confidential. If it is not intended for you, please notify the sender, and please erase and ignore the contents.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20131022/39e32ea9/attachment.html>


More information about the erlang-questions mailing list