[erlang-questions] What's the proper/right way to run erlang in the background?
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
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
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
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:
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!
erlang-questions mailing list
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...
More information about the erlang-questions