linux - LanguageTool Java 应用程序作为 systemd 服务运行。`--languagemodel` 参数被忽略
问题描述
我已经下载了LanguageTool 服务器。我为应用程序创建了一个 systemd 进程,以确保它可以轻松管理并在启动时开始:
系统
[Unit]
Description=LanguageTool Service
[Service]
WorkingDirectory=/opt/languagetool
ExecStart=/usr/bin/java -cp /usr/local/LangAnalysisApp/LangTool/LanguageTool-4.9/languagetool-server.jar org.languagetool.server.HTTPServer --port 8081 --languagemodel /mnt/languagetool-volume/languagetool-ngrams --allow-origin '*'
StandardOutput=syslog+console+/var/log/languagetool.log
StandardError=syslog+console+/var/log/languagetool.log
User=www-data
Type=simple
Restart=on-failure
RestartSec=10
[Install]
WantedBy=multi-user.target
端口通过 nginx 暴露如下:
NGINX
server {
listen 80;
server_name my.domain.com;
root /var/www/my.domain.com/public_html;
index index.html;
charset utf-8;
access_log off;
error_log /var/log/nginx/my.domain.com-error.log error;
location /v2/check {
proxy_pass http://localhost:8081/v2/check;
}
}
该--languagemodel
选项被忽略。如果我输入不正确,那么我会看到错误。进程文件中的参数不会抛出任何错误,因此必须被系统识别。不过,此处显示的测试 n-gram不会返回任何结果,所以我知道它没有正确加载。
我想知道如何使该--languagemodel
选项与 systemd 一起使用。
解决方案
首先,大写很重要。该--languageModel
选项仅在以驼峰式格式编写时才被 systemd 识别。
其次,这个错误不是我自己的错,而是由当前版本的 LanguageTool 中的一个错误引起的。这里提到了一个修复。使用版本快照可以5.0
修复错误。现在使用外部 n-gram 来生成结果。该版本4.9.1
将在未来几天内发布,并包含对该错误的修复。
推荐阅读
- azure-cognitive-services - Microsoft 认知面部 API 人员组创建错误
- mysql - LIMIT 在 MySQL 8.0 的存储过程中不能使用用户定义的参数
- angular - Angular nativeElement contains() 无法按预期为文档工作:单击
- python - 将我的 jupyter 笔记本设置为使用环境的 python 版本
- java - 使用 MySQL 容器作为依赖项在本地运行 Spring Boot?
- laravel-4 - 在查找查询中传递两个 id 以更新 laravel 4.2 中的状态数据库
- java - 委托 org.junit.jupiter.api.Assertions 类
- python - 如何从数据中排除这种类型的uid,只提取一年以来没有登录的用户
- c++ - 当我尝试使用 sstream 和 facet 将 Boost Time_duration 转换为字符串时,我没有得到所需的格式
- ruby-on-rails - Rails查询:查找第一条记录值并以表格形式显示