<div dir="ltr">I personally avoid run_erl altogether, and use the "foreground" mode from the relx generated script. The systemd unit looks like this:<div><div><br></div><div><pre style="margin-top:0px;margin-bottom:0px;padding:0px;font-size:12px;line-height:1.4;color:rgb(51,51,51)">[Unit]
Description=My Server
After=network.target auditd.service

[Service]
Type = simple
ExecStart = /srv/my-server/bin/my-server foreground
Restart = always
User = my-server
Group = my-server
Environment = ERL_EPMD_ADDRESS=127.0.0.1

[Install]
WantedBy = multi-user.target
</pre></div></div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Apr 20, 2017 at 10:12 AM, Tom O'Dowd <span dir="ltr"><<a href="mailto:tpodowd@cloudian.com" target="_blank">tpodowd@cloudian.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word">Oh. That’s an interesting idea. I will check that out. Thanks for the pointer.<span class="HOEnZb"><font color="#888888"><div><br></div><div>Tom.</div></font></span><div><div class="h5"><div><br><div><blockquote type="cite"><div>On Apr 19, 2017, at 23:35, Graham Hay <<a href="mailto:grahamrhay@gmail.com" target="_blank">grahamrhay@gmail.com</a>> wrote:</div><br class="m_-3885771060429311732Apple-interchange-newline"><div><div dir="ltr">You can use Type=notify for your service, and then inform systemd of the main pid later (like a forking daemon, with a pidfile, once was). That's how rabbitmq works:<div><br></div><div><a href="https://github.com/binarin/rabbitmq-server/blob/master/src/rabbit.erl#L345" target="_blank">https://github.com/binarin/<wbr>rabbitmq-server/blob/master/<wbr>src/rabbit.erl#L345</a><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On 19 April 2017 at 06:51, Tom O'Dowd <span dir="ltr"><<a href="mailto:tpodowd@cloudian.com" target="_blank">tpodowd@cloudian.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word">I’m starting an application using systemd which uses run_erl in daemon mode. When I stop the application though by running init:stop(), run_erl seems to return an exit status of 1 rather than 0 so I always get a failed status for the service rather than an inactive status. I can set systemd SuccessExitStatus=1 to have it treat 1 as a success but then if for example the erlang node did die, it still gets marked as inactive rather than failed.<div><br></div><div>Note that if I tell systemd that the MainPID is the pid of the beam process rather than run_erl, systemd spits out a warning</div><div><span style="color:rgb(51,51,51);font-family:Arial,sans-serif;font-size:14px;font-variant-ligatures:normal;background-color:rgb(245,245,245)">       Supervising process 96669 which is not our child. We'll most likely not notice when it exits.</span></div><div><span style="font-variant-ligatures:normal;background-color:rgb(245,245,245)"><span>and sure enough, if you kill beam, systemd doesn’t notice.</span></span></div><div><span style="font-variant-ligatures:normal;background-color:rgb(245,245,245)"><span><br></span></span></div><div><span style="font-variant-ligatures:normal;background-color:rgb(245,245,245)"><span>Main issue sees to be that run_erl doesn’t return the exiting VM status back as its own status. Currently using 19.2 although will move to 19.3 shortly.</span></span></div><div><span style="font-variant-ligatures:normal;background-color:rgb(245,245,245)"><span><br></span></span></div><div><span style="font-variant-ligatures:normal;background-color:rgb(245,245,245)"><span>Any pointers? Been poking around on Google and this doesn’t seem like a common issue so maybe I am doing something wrong.</span></span></div><div><span style="font-variant-ligatures:normal;background-color:rgb(245,245,245)"><span><br></span></span></div><div><span style="font-variant-ligatures:normal;background-color:rgb(245,245,245)"><span>Thanks,</span></span></div><div><span style="font-variant-ligatures:normal;background-color:rgb(245,245,245)"><span><br></span></span></div><div><span style="font-variant-ligatures:normal;background-color:rgb(245,245,245)"><span>Tom.</span></span></div></div><br>______________________________<wbr>_________________<br>
erlang-questions mailing list<br>
<a href="mailto:erlang-questions@erlang.org" target="_blank">erlang-questions@erlang.org</a><br>
<a href="http://erlang.org/mailman/listinfo/erlang-questions" rel="noreferrer" target="_blank">http://erlang.org/mailman/list<wbr>info/erlang-questions</a><br>
<br></blockquote></div><br></div>
</div></blockquote></div><br></div></div></div></div><br>______________________________<wbr>_________________<br>
erlang-questions mailing list<br>
<a href="mailto:erlang-questions@erlang.org">erlang-questions@erlang.org</a><br>
<a href="http://erlang.org/mailman/listinfo/erlang-questions" rel="noreferrer" target="_blank">http://erlang.org/mailman/<wbr>listinfo/erlang-questions</a><br>
<br></blockquote></div><br></div>