在启动时启动Erlang服务(使用Relx创建版本)

时间:2015-03-14 13:00:04

标签: erlang relx

我有一个用Relang编写的服务器,用Rebar编译,我用Relx发布了一个版本。

很好地开始
/root/rel/share3/bin/share3 start

下一步是在服务器启动时启动。

我尝试了不同的方法,最后一个是使用/etc/init.d/skeleton我更改了以下内容

NAME=share3
DAEMON=/root/rel/share3/bin/share3
DAEMON_ARGS="$1"

之后,我运行update-rc.d,但我还没有完成它的工作。 (Ubuntu 14.04)

服务一直运行直到机器重新启动,我需要登录并重新启动它。

对于Windows,它非常优雅,因为它可以创建Windows服务。

2 个答案:

答案 0 :(得分:0)

Ubuntu使用upstart作为初始系统,所以你可以尝试类似的东西:

description "Start my awesome service"
start on runlevel [2345]
stop on runlevel [!2345]

respawn
exec /root/rel/share3/bin/share3

您必须将此脚本放在/etc/init/目录中,并带有'.conf'扩展名,例如'/etc/init/share3.coinf'。要开始它,请调用sudo start share3

答案 1 :(得分:0)

最后,我解决了!

我告诉relx将结果放在/ home / mattias / rel。 relx的脚本是/ home / mattias / rel / share3 / bin / share3

替换行

SCRIPT_DIR="$(dirname "$0")"

by(你需要修改路径/ home / mattias / rel)

HOME=/home/mattias
export HOME
SCRIPT_DIR="/home/mattias/rel/share3/bin"

使用

将文件复制到/etc/init.d/share3
sudo cp ~/rel/share3/bin/share3 /etc/init.d/

使用

测试它是否有效
/etc/init.d/share3 start

/etc/init.d/share3 stop

为了让它在启动时启动,请安装sysv-rc-conf

sudo apt-get install sysv-rc-conf

使用

启动启动
sudo sysv-rc-conf share3 on

并禁用

sudo sysv-rc-conf share3 off

欢迎替代方案。