【发布时间】:2011-10-13 10:25:18
【问题描述】:
显然,我有一个在 Erlang shell 中运行的 Erlang 程序,我想监控它。
这就是我想要的:
- 当机器启动时,Erlang shell 应该随之启动,运行在 shell 中的程序也应该启动。
- 如果 Erlang shell 因某种原因崩溃,它应该重新启动。
- 您应该能够手动启动/停止/重新启动 Erlang shell。
例子:
/etc/init.d/foobar start
/etc/init.d/foobar stop
/etc/init.d/foobar restart
我还没有开始整个“如果崩溃则重新启动”的事情,被简单的事情卡住了,还是很容易?
我所做的是这样的:
从 /etc/init.d/skeleton 中获取骨架代码并替换 PATH、DESC、NAME 等...这行得通,我可以做到:
/etc/init.d/foobar start
但是,我无法阻止它...问题是我用“erl”启动了 Erlang shell,这是一个脚本,可以做一些我不明白的花哨的事情。它所做的一件事是,它创建了一个非常长且复杂的进程名称。这不仅仅是“erl”,它就像:
/usr/lib/erlang/erts-5.7.4/bin/beam.smp -- -root /usr/lib/erlang -progname erl -- -home /home/xxx -- .... 还有一些更多。
有没有更好的方法来做到这一点?
操作系统:Ubuntu 11.04
【问题讨论】:
-
你看到钢筋了吗? bitbucket.org/basho/rebar/wiki/Home