1

我有一个用 Erlang 编写的服务器,用 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 服务。

4

2 回答 2

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.

于 2015-03-16T16:48:41.217 回答
0

最后,我解决了!

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

替换行

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

通过(您需要修复路径/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

欢迎替代品。

于 2015-04-28T15:51:53.747 回答