1

Rebar でコンパイルされた Erlang で書かれたサーバーがあり、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

ついに、私はそれを解決しました!

/home/mattias/rel に結果を配置するように relx に指示しました。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

代替案は大歓迎です。

于 2015-04-28T15:51:53.747 に答える
0

Ubuntuはupstartをinitシステムとして使用するため、次のようなことを試すことができます:

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

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

このスクリプトは/etc/init/、「/etc/init/share3.coinf」のような「.conf」拡張子を持つディレクトリに配置する必要があります。開始するには、 を呼び出しsudo start share3ます。

于 2015-03-16T16:48:41.217 に答える