Linux 专用CoreNLP服务器控制问题

Linux 专用CoreNLP服务器控制问题,linux,terminal,centos,stanford-nlp,Linux,Terminal,Centos,Stanford Nlp,问题:如何确认我的“专用服务器”是否正常运行 背景:我正致力于在独立Linux系统上运行“专用CoreNLP服务器”。该系统是一台运行CentOS 7的笔记本电脑。之所以选择此操作系统,是因为该操作系统的说明特别说明它们适用于CentOS 我已逐步遵循专用CoreNLP服务器的说明(概述如下): 从斯坦福大学CoreNLP网站(非GitHub)下载CoreNLP 3.7.0并将其放入/解压缩到文件夹中 安装了authbind并创建了一个名为“nlp”的用户,该用户具有超级用户权限,并将其绑定到端

问题:如何确认我的“专用服务器”是否正常运行

背景:我正致力于在独立Linux系统上运行“专用CoreNLP服务器”。该系统是一台运行CentOS 7的笔记本电脑。之所以选择此操作系统,是因为该操作系统的说明特别说明它们适用于CentOS

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

  • 从斯坦福大学CoreNLP网站(非GitHub)下载CoreNLP 3.7.0并将其放入/解压缩到文件夹中
  • 安装了
    authbind
    并创建了一个名为“nlp”的用户,该用户具有超级用户权限,并将其绑定到端口80

    sudo mkdir-p/etc/authbind/byport/

    sudotouch/etc/authbind/byport/80

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

    sudo chmod 600/etc/authbind/byport/80

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

  • 为启动脚本授予可执行权限:
    sudo chmod a+x/etc/init.d/corenlp

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

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

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

    由于“正确”命令没有按我认为的那样运行,我使用了命令
    sudo systemctl*start*corenlp.service
    ,并使用
    sudo systemctl*status*corenlp.service
    检查了服务的状态。我不确定这是否是启动和停止“专用CoreNLP服务器”的适当方式,但我可以控制服务。我只是不知道我是否真的在启动和停止我的专用服务器


    我可以使用
    systemctl
    命令操作我的
    专用CoreNLP服务器吗?

    请阅读最初发布的问题下方的评论。这是@GaborAngeli和我之间的反复,导致我的问题/问题得到解决

    在遵循斯坦福CoreNLP网页上概述的有关如何设置专用服务器的所有说明后,为了在我的机器上本地运行CoreNLP服务器实例化,我采取了以下两个关键步骤:

  • 对“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 corenlpserver-port 80”

  • 如果尝试使用上述更改启动服务器,则无法成功运行服务器,因为sudo使用需要输入密码。为了在不需要输入密码的情况下允许sudo权限,您需要编辑sudoers文件(我在root用户b/c下这样做了,您需要更改甚至查看此文档的权限)。我的sudoers文件位于/etc中。其中有一个部分说,
    ##允许组轮中的人运行所有命令
    ,下面是一个部分说,
    ##同样的东西没有密码
    。您只需删除下一行前面的注释标记(#)表单,该行显示
    %wheel ALL+(ALL)NOPASSWD:ALL
    。保存此文件编辑此文件时要小心,因为它可能会导致严重问题。仅进行上述必要的更改

  • 这两个步骤使我能够成功运行我的专用服务器。我的系统运行在CentOS 7上


    帮助提示:从我与@GaborAngeli的讨论中,我了解到在“corenlp”文件夹中(/opt/corenlp,如果您按照正确的说明操作),您可以打开
    stderr.log
    文件来帮助您排除服务器故障。这将输出在命令窗口中运行服务器时所看到的内容。如果出现错误,也会在此处输出,这非常有帮助。

    @Gabor您似乎对CoreNLP有一定的知识和经验。你能告诉我一些我正在经历的事情吗?@stanfordnlphelp
    ps
    告诉你什么,日志上写了什么?启动脚本是在不久前编写的,在我们为服务器准备了
    /ready
    端点之前,所以现在它总是说服务器已启动,即使启动失败。不确定使用
    ps
    会看到什么。我是一名机械工程师,有点不适应/仍在学习。如果我只使用没有参数的
    ps
    ,它会打印两行输出
    4950 pts/5 00:00:00 ps
    30134 pts/5 00:00:00 bash
    我还使用了`ps-A来获得完整的列表,但我不知道我在寻找什么。从您所说的脚本将显示它已启动的方式判断,即使启动失败,我的服务器也无法启动@Ga