【发布时间】:2017-09-30 08:43:16
【问题描述】:
问题:如何确认我的“专用服务器”是否正常运行?
背景:我正在努力让“专用 CoreNLP 服务器”在独立的 Linux 系统上运行。该系统是一台运行 CentOS 7 的笔记本电脑。之所以选择该操作系统,是因为 Dedicated CoreNLP Server 的说明明确指出它们适用于 CentOS。
我已逐步遵循专用 CoreNLP 服务器的说明(概述如下):
- 从 Stanford CoreNLP 网站(不是 GitHub)下载 CoreNLP 3.7.0 并将其放置/提取到 /opt/corenlp 文件夹中。
-
安装
authbind并创建一个名为'nlp'的用户,拥有超级用户权限并将其绑定到80端口sudo mkdir -p /etc/authbind/byport/sudo touch /etc/authbind/byport/80sudo chown nlp:nlp /etc/authbind/byport/80sudo 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 服务器已启动”,它IS 与启动脚本“corenlp”一致。然后我再次运行启动命令并得到相同的响应,这与启动脚本不一致。据我所知,如果服务器实际上正在运行并且我尝试再次启动它,我应该会收到消息“CoreNLP 服务器已经在运行!”这让我相信我的服务器实际上并没有按预期运行。
此命令是否正确启动服务器?我怎么知道?
由于“正确”命令没有按我想的那样运行,我使用了命令sudo systemctl *start* corenlp.service 并使用sudo systemctl *status* corenlp.service 检查了服务的状态。我不确定这是否是启动和停止“专用 CoreNLP 服务器”的合适方式,但我可以控制该服务。我只是不知道我是否真的在启动和停止我的专用服务器。
我可以使用systemctl命令来操作我的Dedicated CoreNLP Server吗?
【问题讨论】:
-
@Gabor 你似乎对 CoreNLP 有知识和经验。你能告诉我一些关于我正在经历的事情吗?
-
@StanfordNLPHelp
-
ps告诉你什么,日志说什么?启动脚本是不久前编写的,在我们拥有服务器的/ready端点之前,所以现在它总是说服务器已启动,即使它无法启动。 -
不确定
ps会看到什么。我是一名机械工程师,有点脱离我的元素/仍在学习。如果我只使用不带参数的ps,它会打印两行输出4950 pts/5 00:00:00 ps和30134 pts/5 00:00:00 bash,我还使用`ps -A 来获取完整列表,但我不知道我在寻找什么。从你所说的脚本来看,即使启动失败,脚本也会说它启动,我的服务器也启动失败。 @Gabor -
[nlp@localhost corenlp]$ ps -e PID TTY TIME CMD 1 ? 00:00:03 系统 2 ? 00:00:00 kthreadd 3 ? 00:00:00 ksoftirqd/0 7 ? 00:00:00 迁移/0 8 ? 00:00:00 rcu_bh 9? 00:00:03 rcu_sched 10? 00:00:00 看门狗/0 11 ? 00:00:00 看门狗/1 12 ? 00:00:00 迁移/1 13 ? 00:00:00 ksoftirqd/1 15 ? 00:00:00 kworker/1:0H 16 ? 00:00:00 看门狗/2 17 ? 00:00:00 迁移/2 18 ? 00:00:00 ksoftirqd/2
标签: linux terminal centos stanford-nlp