如何通过命令行将应用程序作为守护进程启动?
这是我当前的例程
sudo nohup erl -sname foo -pa ./ebin -run foo_supervisor shell -noshell -noinput &
,其中 shell 函数看起来像这样
shell() ->
{ok, Pid} = supervisor:start_link({local,?MODULE}, ?MODULE, _Arg = []),
unlink(Pid).
如果我不从 shell 取消链接,它会因某种原因立即停止。有没有一种方法可以像平常一样启动我的应用程序,即 application:start(foo)。另外,如果我也想启动 sasl 怎么办?另外,我在哪里可以了解有关使用钢筋制作独立包装的更多信息?
This has been my current routine
sudo nohup erl -sname foo -pa ./ebin -run foo_supervisor shell -noshell -noinput &
where the shell function looks something like this
shell() ->
{ok, Pid} = supervisor:start_link({local,?MODULE}, ?MODULE, _Arg = []),
unlink(Pid).
If I don't unlink from shell it immediately stops for some reason. Is there a way I can just start my application like I would normally ie application:start(foo). Also what if I want to start sasl too? Also where could I learn more about making a self contained package using rebar?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
前言。关于您的取消链接
在这个其他SO线程中@filippo解释了为什么您需要<当从 shell 测试 Supervisor 时,使用 code>unlink 。
首先。您需要的是 Erlang 应用程序。
从文档中阅读:
有关如何实现 Erlang 应用程序的详细信息,请参阅此处。您需要做的三件主要事情是:
mod
参数)。第二。启动SASL。
在上面的应用程序资源文件中,您可以指定要在应用程序之前启动的应用程序列表。您将添加类似以下内容:
告诉它启动 SASL。
第三。
Rebar 的介绍这里,它向您解释了如何使用 Rebar 来帮助您完成上述步骤,将您全新的应用程序打包到 Erlang 版本 以及如何启动它。
Preface. About your unlink
In this other SO thread @filippo explains why you need the
unlink
when testing supervisors from the shell.First. What you need is an Erlang application.
Reading from the doc:
Details on how to implement an Erlang application are available here. The three main things you will need to do are:
mod
parameter).Second. Starting SASL.
In the above application resource file, you can specify a list of applications you want to start before your application. You will add something like:
To tell it to start SASL.
Third. Rebar.
There's an introduction to Rebar here, which explains you how to use Rebar to help you in the above steps, to pack your brand new application into an Erlang release and how to start it.