我有一个在Erlang shell中运行的程序,显然,我想要监控它。
这就是我想要的:
- 当机器启动时,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