linux下使用observer:start
问:
如果我的erlang
app部署在linux机器上,且linux机器上只能通过命令行的方式访问。
这个时候我能否从windows的机器上通过rpc运行observer:start().
然后在windows的机器上通过界面来查看那个linux环境上的erlang app运行情况?
app部署在linux机器上,且linux机器上只能通过命令行的方式访问。
这个时候我能否从windows的机器上通过rpc运行observer:start().
然后在windows的机器上通过界面来查看那个linux环境上的erlang app运行情况?
答:No problem!
1. 如果erlang vm启动的时候没有指定name,使用net_kernel可以在运行时指定
1> net_kernel:start([test@nimbus]).
{ok,<0.34.0>}
2. 判断当前是不是longname
(test@nimbus)2> net_kernel:longnames(). true
3. 在linux环境运行的erlang程序中获取cookie和node,方法很简单,输入erlang:get_cookie()和node()。
(newmaster@192.168.1.***)3> node(). 'newmaster@192.168.1.***' (newmaster@192.168.1.***)4> erlang:get_cookie(). '81**03'
4. 修改erlang vm的cookie,只有与要连接的进程cookie相同时才能进行连接加入集群
erlang:set_cookie(node(), Cookie).
net_adm:ping(Node()).
(test@nimbus)4> erlang:set_cookie(node(),'81**03'). true (test@nimbus)5> net_adm:ping('newmaster@192.168.1.***'). pong
5. 启动observer:start(),成功后可以在Nodes选项中查看需要的一些信息
(test@nimbus)6> observer:start().
ok

如果有更好的办法,请指出来,谢谢...

浙公网安备 33010602011771号