![](/img/trans.png)
[英]How to connect to a registered Node (Erlang) and use it from another erlang application
[英]How to restart an erlang node?
我有一個示例 git push github
這是編程 Erlang 一書中的一個應用示例
你可以按照README.md
我的問題是應用程序 sellaprime 何時開始,我
./bin/sp restart
這將使節點關閉而不是重新啟動?
系統在運行的 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.