AEM 实例未使用启动命令启动

AEM instance is not getting started with start command

我在 Redhat linux 服务器上使用 AEM6.3。我在两个不同的 linux 服务器上有一位作者和一个发布实例。 我可以使用 crx-quickstart/bin 文件夹下的启动命令 (./start) 启动作者实例。 但是我的发布实例没有开始使用 ./start 命令。我收到“Sling 已在 /mnt/crx/publish/crx-quickstart 中激活 " stdout.log 文件中的错误如下-

Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=256M; support was removed in 8.0
06.09.2017 46:24:38.789 *INFO * [main] Setting sling.home=crx-quickstart (command line)
06.09.2017 46:24:38.789 *INFO * [Apache Sling Control Listener@/277.0.0.9:36038] /277.0.0.9:44314>status
06.09.2017 46:24:38.790 *INFO * [Apache Sling Control Listener@/277.0.0.9:36038] /277.0.0.1:44314<OK
06.09.2017 46:24:38.791 *INFO * [main] Sent 'status' to /277.0.0.9:36038: OK
06.09.2017 46:24:38.792 *ERROR* [main] Sling already active in /mnt/crx/publish/crx-quickstart

我看到一些帖子提到了同样的错误,但它们是针对 windows 系统的。

如何在 linux 中解决这个问题?

看看ControlListener.java which is referred in the sling launchpad documentation

具体来说,listen 方法:

boolean listen() {
    final File configFile = getConfigFile();
    if (configFile.canRead() && statusServer() == 0) {
        // server already running, fail
        Main.error("Sling already active in " + this.slingMain.getSlingHome(), null);
        return false;
    }
    .
    .
    .
}

listen方法调用getConfigFile方法:

private File getConfigFile() {
    final File configDir = new File(this.slingMain.getSlingHome(), "conf");
    return new File(configDir, "controlport");
}

所以基本上,默认情况下(使用默认 AEM 安装)它会查找文件:crx-quickstart/conf/controlport(在 sling launchpad documentation 中有一些记录)如果它找到并可以读取它,那么它将失败,因为它认为有一个 运行ning 实例。我的假设是您通过终止进程或发生意外关闭停止了 运行ning 实例。

无论哪种方式,试试这个:

  1. 复制文件:crx-quickstart/conf/controlport到不同的位置(作为备份)
  2. 删除文件crx-quickstart/conf/controlport
  3. 运行 你的启动命令

这是假设,因为我无法重现,但查看启动板代码,这似乎可以解决您的问题。