作为系统服务运行的LanguageTool Java应用程序。 --languagemodel`参数将被忽略

时间:2020-03-27 23:57:14

标签: linux nginx systemd init.d languagetool

我已经下载了LanguageTool server。我为该应用程序创建了一个systemd流程,以确保可以轻松管理它并在启动时开始:

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选项将被忽略。如果我输入不正确,则会看到错误。进程文件中的参数不会引发任何错误,因此系统必须识别该参数。不过,显示的here测试n-gram不会返回任何结果,因此我知道它无法正确加载。

我想知道如何使--languagemodel选项与systemd一起使用。

1 个答案:

答案 0 :(得分:0)

首先,大写很重要。 --languageModel选项仅在使用驼峰式书写方式时才被systemd识别。

第二,该错误不是我自己的任何错误,而是由LanguageTool当前版本中的错误引起的。提到了一个解决方法here。使用版本5.0的快照可修复该错误。现在使用外部n元语法生成结果。 4.9.1版将在未来几天内发布,其中包含该错误的修复程序。