说明
beam 被杀死以后,会重新启动,用于对于稳定性要求很高的场合。
或者先 kill 掉 heart 进程,在 kill 掉 beam 进程
激活
rebar3 项目
vm.args
1 2 3 4 5 6 7
| -heart
-env HEART_COMMAND "/xxx/rel/demo_release/bin/demo_release daemon" -env HEART_BEAT_TIMEOUT 10
|
或者设置环境变量
1 2
| export HEART_COMMAND="/xxx/rel/demo_release/bin/demo_release daemon" export HEART_BEAT_TIMEOUT=10
|
原始命令行
方法 1
节点 1
1 2 3
| erl -heart -sname aaa@manjaro -setcookie 123456 \ -env HEART_COMMAND "erl -heart -sname aaa@manjaro -setcookie 123456" \ -env HEART_BEAT_TIMEOUT 10
|
节点 2
1 2
| erl -sname bbb@manjaro -setcookie 123456 net_kernel:connect_node('aaa@manjaro').
|
方法 2
节点 1
1 2 3
| export HEART_COMMAND="erl -heart -sname aaa@manjaro -setcookie 123456" export HEART_BEAT_TIMEOUT=10 erl -heart -sname aaa@manjaro -setcookie 123456
|
节点 2
1 2
| erl -sname bbb@manjaro -setcookie 123456 net_kernel:connect_node('aaa@manjaro').
|
切换到远程节点
1 2 3 4
| Ctrl + G User switch command --> r 'aaa@manjaro' --> c
|
动态修改
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| os:getenv("HEART_COMMAND"). os:getenv("HEART_BEAT_TIMEOUT").
heart:get_cmd(). {ok,"erl -heart"}
heart:set_cmd("heart -shutdown"). ok
heart:get_cmd(). {ok,"heart -shutdown"}
heart:clear_cmd(). ok
heart:get_cmd(). {ok,"erl -heart"}
|
关闭
正常关闭
如果要关闭,则 remsh 到目标节点,执行
杀掉
不可以用 pkill, 因为 heart 也是 erl 体系内的
1 2
| ps aux | grep erl kill -9 xxx
|