如何在不重新启动erlang中的服务器的情况下启动新添加的管理器?

如何在不重新启动erlang中的服务器的情况下启动新添加的管理器?,erlang,erlang-supervisor,Erlang,Erlang Supervisor,我们在远程节点上运行了一台服务器。现在我们想添加一个新特性(由gen_*实现),而不停止服务器。所以我使用rpc:call(Node,my_sup,start_link,[])来启动监控程序。但不幸的是,我发现监管者链接到我的本地shell而不是远程节点,并且在rpc:调用之后,它立即失败(sup进程被终止) 我只是想知道有没有其他方法可以动态远程启动新添加的主管?主管必须始终链接到某个东西。通常,OTP应用程序在其start方法中会产生“根管理器”,它管理所有其他进程和其他管理器。它链接到启动

我们在远程节点上运行了一台服务器。现在我们想添加一个新特性(由gen_*实现),而不停止服务器。所以我使用rpc:call(Node,my_sup,start_link,[])来启动监控程序。但不幸的是,我发现监管者链接到我的本地shell而不是远程节点,并且在rpc:调用之后,它立即失败(sup进程被终止)


我只是想知道有没有其他方法可以动态远程启动新添加的主管?

主管必须始终链接到某个东西。通常,OTP应用程序在其
start
方法中会产生“根管理器”,它管理所有其他进程和其他管理器。它链接到启动应用程序的进程

如果您有这样一个根管理器,您可以使用
管理器:start\u child(SupRef,ChildSpec)
SupRef
是对“根主管”(可能是Pid或名称)的引用,
ChildSpec
将是您要生成的主管或gen_服务器本身。此功能记录在此处:

如果你没有监督树。您可以将新功能打包为OTP应用程序,这将在启动时生成第一个主管