首页 > 解决方案 > 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 一起使用。

标签: linuxnginxsystemdinit.dlanguagetool

解决方案


首先,大写很重要。该--languageModel选项仅在以驼峰式格式编写时才被 systemd 识别。

其次,这个错误不是我自己的错,而是由当前版本的 LanguageTool 中的一个错误引起的。这里提到了一个修复。使用版本快照可以5.0修复错误。现在使用外部 n-gram 来生成结果。该版本4.9.1将在未来几天内发布,并包含对该错误的修复。


推荐阅读