代码之家  ›  专栏  ›  技术社区  ›  Shubham1164

如何通过Mongooseim中的终端与已经运行的实例进行交互?

  •  0
  • Shubham1164  · 技术社区  · 6 年前

    我使用的是来自Ubuntu服务器上源代码的Mongooseim3.2.0。以下是关注点:

    1. 将Mongooseim作为服务运行,以便在Mongooseim崩溃或系统重新启动时自动重新启动,最好的方法是什么?
    2. 如何通过终端与Ubuntu服务器上已经运行的mongooseim实例进行交互,如“mongooseimctl live”。我猜运行“mongooseimctl live”会尝试创建另一个实例。我只想看到实时日志和交互,不想为了这个目的一直滚动长日志文件。

    如果上面的答案是显而易见的,但我只想遵循最好的指导,那我道歉。

    1 回复  |  直到 6 年前
        1
  •  1
  •   erszcz    6 年前

    mongooseimctl live mongooseimctl foreground 主要用于开发或冒烟测试部署(除非您在容器中运行)。对于真实的用例,您应该在后台启动服务器 mongooseimctl start .

    回到容器-容器化应用程序的最佳方法是在前台运行它们,因此在容器启动脚本中使用 Mongooseimctl前景 .

    服务器运行后(无论是如何启动的),可以使用附加外壳来解决问题。 mongooseimctl debug . 这是当您获取 Protocol 'inet_tcp': the name mongooseim@localhost seems to be in use by another Erlang node 错误。如果它是一个生产环境,请小心——您可以通过访问这个shell轻松地关闭服务器。

    如果您只是想查看日志,而没有对shell提供的服务器内部的交互式访问,那么 tail -f /your-configured-mongooseim-log-dir/* 应该足够了。


    如今,Ubuntu使用SystemD来管理其服务的生命周期。一个系统 .service 文件可在 https://github.com/esl/MongooseIM/blob/master/tools/pkg/platforms/debian_stretch/files/build/mongooseim.service -我们用它包装成debian/ubuntu.deb包。