我已经下载了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
版本将在未来几天内发布,并包含对该错误的修复。