<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body><div>The start script generated using rebar should also have a getpid supported argument and a start that works the same. The scripts between relx and rebar are nearly identical.<br></div>
<div> </div>
<div>But I'd still suggest moving to relx over reltool :)<br></div>
<div> </div>
<div id="sig19496053"><div class="signature">--<br></div>
<div class="signature">Tristan Sloughter<br></div>
<div class="signature">t@crashfast.com<br></div>
<div class="signature"> </div>
</div>
<div> </div>
<div> </div>
<div>On Tue, May 12, 2015, at 12:29 PM, Roberto Ostinelli wrote:<br></div>
<blockquote type="cite"><div>Indeed, I'm usong rebar (not relx, not rebar3). AFAIK this option is a relx option unfortunately.<br></div>
<div> </div>
<div>Is is worthy to move to relx for this?<br></div>
<div> </div>
<div> </div>
<div> </div>
<div>On 12/mag/2015, at 18:58, Tristan Sloughter <<a href="mailto:t@crashfast.com">t@crashfast.com</a>> wrote:<br></div>
<div> </div>
<blockquote type="cite"><div><div>I'd suggest relx (<a href="http://github.com/erlware/relx">github.com/erlware/relx</a>) or rebar3 which use relx <a href="http://www.rebar3.org/v3.0/docs/releases">http://www.rebar3.org/v3.0/docs/releases</a><br></div>
<div> </div>
<div>I've never had to do what you are trying to do but I know the extended_start_script has the ability to return the pid of the running node and `start` uses `run_erl` for running as a daemon and allows attaching through a fifo pipe.<br></div>
<div> </div>
<div>It would be great to improve the generated release scripts and whatever else we can to make this easier.<br></div>
<div> </div>
<div><div>--<br></div>
<div>Tristan Sloughter<br></div>
<div><a href="mailto:t@crashfast.com">t@crashfast.com</a><br></div>
<div> </div>
</div>
<div> </div>
<div> </div>
<div>On Tue, May 12, 2015, at 11:48 AM, Dmitry Kolesnikov wrote:<br></div>
<blockquote type="cite"><div>Hello Roberto,<br></div>
<div> </div>
<div>The rebar makes a dirty work to generate "node release” and necessary bootstrap scripts.  Please check create-node command and concept of erlang releases: <br></div>
<div><a href="https://github.com/rebar/rebar/wiki/Rebar-commands">https://github.com/rebar/rebar/wiki/Rebar-commands</a><br></div>
<div><a href="http://www.erlang.org/doc/man/reltool.html">http://www.erlang.org/doc/man/reltool.html</a><br></div>
<div> </div>
<div>It generates script looks something similar to this one. It also hooks the heart to watchdog the node.  <br></div>
<div><a href="https://github.com/fogfish/hyperion/blob/master/rel/files/hyperion">https://github.com/fogfish/hyperion/blob/master/rel/files/hyperion</a><br></div>
<div> </div>
<div>Personally, I am following an idea to package the application to release and ship it to destination hosts.<br></div>
<div>Long time ago, I’ve made an empty “erlang release” project as show-case to study and debug various scenarios. You might look on it here:<br></div>
<div> </div>
<div><a href="https://github.com/fogfish/hyperion">https://github.com/fogfish/hyperion</a><br></div>
<div> </div>
<div>Best Regards, <br></div>
<div>Dmitry<br></div>
<div> </div>
<div> </div>
<div><blockquote type="cite"><div>On 12 May 2015, at 19:07, Roberto Ostinelli <<a href="mailto:roberto@widetag.com">roberto@widetag.com</a>> wrote:<br></div>
<div> </div>
<div><div dir="ltr"><div>Fair enough, however at this point I cannot even a single one of these systems to simply START *and* STOP an Erlang release.<br></div>
<div>I can easily start it (on ubuntu, `sudo service myapp start`) but the STOP command will always fail. That's because the init script cannot get a grasp of the BEAM process' pid (for some reason), hence it cannot stop it.<br></div>
<div> </div>
<div>Any ideas on how to do that?<br></div>
<div> </div>
</div>
<div><div> </div>
<div><div>On Tue, May 12, 2015 at 5:52 PM, Jesper Louis Andersen <span dir="ltr"><<a href="mailto:jesper.louis.andersen@gmail.com">jesper.louis.andersen@gmail.com</a>></span> wrote:<br></div>
<blockquote style="margin-top:0px;margin-right:0px;margin-right-ltr-source:physical;margin-right-rtl-source:physical;margin-bottom:0px;margin-left:0.8ex;margin-left-ltr-source:physical;margin-left-rtl-source:physical;border-left-width:1px;border-left-width-ltr-source:physical;border-left-width-rtl-source:physical;border-left-style:solid;border-left-style-ltr-source:physical;border-left-style-rtl-source:physical;border-left-color:rgb(204, 204, 204);border-left-color-ltr-source:physical;border-left-color-rtl-source:physical;padding-left:1ex;padding-left-ltr-source:physical;padding-left-rtl-source:physical;"><div dir="ltr"><div><div> </div>
<div> </div>
<div><div><span>On Mon, May 11, 2015 at 9:13 PM, Roberto Ostinelli <span dir="ltr"><<a href="mailto:roberto.ostinelli@widetag.com">roberto.ostinelli@widetag.com</a>></span> wrote:</span><br></div>
<div> </div>
<blockquote style="margin-top:0px;margin-right:0px;margin-right-ltr-source:physical;margin-right-rtl-source:physical;margin-bottom:0px;margin-left:0.8ex;margin-left-ltr-source:physical;margin-left-rtl-source:physical;border-left-width:1px;border-left-width-ltr-source:physical;border-left-width-rtl-source:physical;border-left-style:solid;border-left-style-ltr-source:physical;border-left-style-rtl-source:physical;border-left-color:rgb(204, 204, 204);border-left-color-ltr-source:physical;border-left-color-rtl-source:physical;padding-left:1ex;padding-left-ltr-source:physical;padding-left-rtl-source:physical;"><span>In non-erlang systems, I would have standard watchdogs that launch an application on OS boot, and then monitor it and relaunch it if necessary.</span><br></blockquote></div>
<div> </div>
<div><span></span>The heart system in Erlang is a simple watchdog, mostly used if you nothing else that will restart your application. In an SysV init system, there is no automatic watching and restart. In RcNG in FreeBSD, there is no restart. In OpenBSDs rc, there is no automatic restart.<br></div>
</div>
<div> </div>
<div>But as you say, many modern init systems also provides watching of the applications it starts, and in that case I wouldn't run with heart enabled. Better to let the system above handle it, and plug into its monitoring/reporting and so on.<br></div>
<div> </div>
<div><div>Heart is very useful if you start nodes outside the control of the system watchdog though. In that case, they won't be restarted, and you can run heart on those.<span><span style="color:rgb(136, 136, 136)" class="colour"></span></span><br></div>
<div> </div>
<div> </div>
<div> </div>
<div><span><span style="color:rgb(136, 136, 136)" class="colour">-- </span></span><br></div>
<div> </div>
<div><span><span style="color:rgb(136, 136, 136)" class="colour">J.</span></span><br></div>
<div> </div>
</div>
</div>
</blockquote></div>
<div> </div>
</div>
<div>_______________________________________________<br></div>
<div>erlang-questions mailing list<br></div>
<div><a href="mailto:erlang-questions@erlang.org">erlang-questions@erlang.org</a><br></div>
<div><a href="http://erlang.org/mailman/listinfo/erlang-questions">http://erlang.org/mailman/listinfo/erlang-questions</a><br></div>
</div>
</blockquote></div>
<div> </div>
<div><u>_______________________________________________</u><br></div>
<div>erlang-questions mailing list<br></div>
<div><a href="mailto:erlang-questions@erlang.org">erlang-questions@erlang.org</a><br></div>
<div><a href="http://erlang.org/mailman/listinfo/erlang-questions">http://erlang.org/mailman/listinfo/erlang-questions</a><br></div>
</blockquote><div> </div>
</div>
</blockquote></blockquote><div> </div>
</body>
</html>