专用的CoreNLP服务器控制问题

时间:2017-05-02 18:04:02

标签: linux terminal centos stanford-nlp

问题:如何确认我的"专用服务器"运行正常吗?

背景:我正在努力获得一个专用的CoreNLP服务器'在独立的Linux系统上运行。该系统是运行CentOS 7的笔记本电脑。选择此操作系统是因为Dedicated CoreNLP Server的指示明确指出它们适用于CentOS。

我已逐步遵循专用CoreNLP服务器的说明(概述如下):

  1. 从Stanford CoreNLP网站(而不是GitHub)下载CoreNLP 3.7.0并将其解压缩/提取到/opt/corenlp文件夹中。
  2. 已安装authbind并创建了一个名为' nlp'具有超级用户权限并将其绑定到端口80

    sudo mkdir -p /etc/authbind/byport/

    sudo touch /etc/authbind/byport/80

    sudo chown nlp:nlp /etc/authbind/byport/80

    sudo chmod 600 /etc/authbind/byport/80

  3. 将启动脚本从路径edu/stanford/nlp/pipeline/demo/corenlp的源jar复制到/etc/init.d/corenlp

  4. 为启动脚本提供可执行权限:sudo chmod a+x /etc/init.d/corenlp

  5. 将脚本链接到/etc/rc.d/ln -s /etc/init.d/corenlp /etc/rc.d/rc2.d/S75corenlp

  6. 完成这些步骤应该允许我运行命令sudo service corenlp start以运行专用服务器。当我在终端中运行此命令时,我得到输出" CoreNLP服务器已启动"哪个 IS 与启动脚本一致" corenlp"。然后我再次运行start命令并获得相同的响应, NOT 与启动脚本一致。据我所知,如果服务器实际上正在运行并且我尝试再次启动它,我应该收到消息" CoreNLP服务器已经在运行!"这让我相信我的服务器实际上并没有按预期运行。

    此命令是否正常启动服务器?我怎么知道?

    因为"正确"命令没有按照我的想法运行,我使用命令sudo systemctl *start* corenlp.service并使用sudo systemctl *status* corenlp.service检查服务的状态。我不确定这是否适合启动和停止专用的CoreNLP服务器'但我可以控制服务。我只是不知道我是否真的开始并停止我的专用服务器。

    我可以使用systemctl命令操作我的Dedicated CoreNLP Server吗?

1 个答案:

答案 0 :(得分:2)

请阅读原始发布的问题下方的评论。这是@GaborAngeli和我之间的来回,这导致我的问题/问题得到解决。

我遵循斯坦福CoreNLP网页上列出的关于如何设置专用服务器的所有指示,以便在我的机器上本地运行CoreNLP服务器的两个关键步骤如下:< / p>

  1. 对“corenlp”启动脚本进行了两处修改。 (1)添加sudo到开头因为用户“nlp”需要对系统上某些文件的权限(2)将第一个文件夹路径从/ usr / local / bin / authbind更改为/ usr / bin / authbind。自编写启动脚本以来,authbind安装必须已更改。

    nohup su "$SERVER_USER" -c "sudo /usr/bin/authbind --deep java -Djava.net.preferIPv4Stack=true -Djava.io.tmpdir_"$CORENLP_DIR" -cp "$CLASSPATH" -mx15g edu.stanford.nlp.pipeline.StanfordCoreNLPServer -port 80"

  2. 如果您尝试使用上述更改启动服务器,则无法成功运行服务器,因为sudo使用需要密码输入。为了在没有所需密码输入的情况下允许sudo权限,您需要编辑sudoers文件(我在root用户b / c下执行此操作,您需要更改甚至查看此文档的权限)。我的sudoers文件位于/ etc。有一个部分显示## Allows people in group wheel to run all commands及以下,这是一个说##Same thing without a password的部分。您只需要删除下一行%wheel ALL+(ALL) NOPASSWD: ALL前面的注释标记(#)表单。保存此文件。 小心编辑此文件,因为它可能会导致严重的问题。只做上面所述的必要变更

  3. 这两个步骤让我成功运行了我的专用服务器。我的系统在CentOS 7上运行。

    有用的提示:从我与@GaborAngeli的讨论中我了解到在'corenlp'文件夹中(/ opt / corenlp,如果你按照正确的方向),你可以打开stderr.log文件帮助您解决服务器问题。如果您要在命令窗口中运行服务器,则会输出您将看到的内容。如果有错误,也会在这里输出,这非常有帮助。