簡體   English   中英

如何重啟erlang節點?

[英]How to restart an erlang node?

我有一個示例 git push github

這是編程 Erlang 一書中的一個應用示例

你可以按照README.md

我的問題是應用程序 sellaprime 何時開始,我

./bin/sp restart

這將使節點關閉而不是重新啟動?

Erlang Doc

系統在運行的 Erlang 節點重新啟動,這意味着模擬器沒有重新啟動。 所有應用程序都被順利刪除,所有代碼被卸載,所有端口都被關閉,然后系統以與初始啟動相同的方式再次啟動。 再次使用相同的 BootArgs。

“模擬器未重啟”是什么意思?

如果我想重啟一個節點,正確的做法是什么?

順便說一句,是否有任何 API 可以知道當前的發布版本,例如

application:which_applications()

它看起來像您的sb init 腳本,即使用nodetool腳本應該為您調用init:restart() 如果這樣做了,但您的節點反而關閉了,請檢查您的日志是否有任何可能的錯誤(也許您的應用程序之一無法處理重新啟動?)。

使用init:restart()是這樣做的方法。 這是一個示例:使用名稱(在本例中為test )啟動一個 Erlang 節點:

$ erl -sname test
Erlang/OTP 18 [erts-7.0] [source] [64-bit] [smp:4:4] [ds:4:4:10] [async-threads:10] [hipe] [kernel-poll:false]

Eshell V7.0  (abort with ^G)
(test@host)1> hello.
hello
(test@host)2> 

臨時啟動另一個節點,該節點將對第一個節點進行 RPC 調用:

$ erl -sname other -noinput -noshell -eval "rpc:call('test@host', init, restart, [])" -s init stop
$

觀察重新啟動的原始節點:

(test@host)2> Erlang/OTP 18 [erts-7.0] [source] [64-bit] [smp:4:4] [ds:4:4:10] [async-threads:10] [hipe] [kernel-poll:false]

Eshell V7.0  (abort with ^G)
(test@host)1>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM