如何向正在运行的 ejabberd 节点添加新模块?

如何向正在运行的 ejabberd 节点添加新模块?

我遵循了本教程https://blog.process-one.net/elixir-sips-ejabberd-with-elixir-part-1/如何编写 ejabberd 模块。效果很好,我将模块放入 ejabberd/src,然后编译所有内容。

但这对我来说似乎很繁重。每次我在开发过程中更改一行代码时,我都必须使用新更改的模块从头开始重新编译 ejabberd。有什么方法可以编译模块,然后将其复制到 ejabberd 模块路径?

如果是,那么 ejabberd 模块路径在哪里?如果是,我应该阅读什么教程?

答案1

使用示例:编辑 src/mod_echo.erl 以添加一些相关更改。现在:

$ make
Compiled src/mod_echo.erl
$ sudo make install
...
$ ejabberdctl update_list
mod_echo
$ ejabberdctl update mod_echo

从现在起,新的代码正在 ejabberd 中运行。

在您的例子中,您将模块源文件复制到 ejabberd 源路径中,并像编译其他 ejabberd 模块一样编译它们。或者您可以单独编译它们,并将 *.beam 文件与所有其他 ejabberd beam 文件一起安装(位置取决于您的系统)。

相关内容