今天早些时候,我得到了一个适用于solr的systemd定义。然后我对定义进行了编辑,并试图重新加载它,但现在该服务不知何故不再启用,我无法启用它。如果我启用了…
systemctl enable solr.service
没有输出。没有错误消息。但如果我这样做…
systemctl -l | grep solr
那里什么都没有。当我运行";服务solr启动";。Solr启动了,但它没有使用systemd定义。
如果我运行";systemctl status solr.service";,我明白了。。。
# systemctl status solr.service
? solr.service - Apache SOLR
Loaded: loaded (/etc/systemd/system/solr.service; enabled; vendor preset: disabled)
Active: inactive (dead) since Thu 2020-10-15 18:34:09 EDT; 15min ago
Main PID: 44533 (code=exited, status=0/SUCCESS)
显然服务已经启用,但我需要一个稍微不同的命令序列来启动它。我的systemd定义中似乎还需要以下内容:
Type=forking
我想我以前不需要,但现在似乎有必要了。每次更改solr.service文件后,我都需要运行";systemctl守护进程重载";然后重新启动solr。
我还需要确保solr还没有运行(使用System V(,然后用systemctl启动它,就像这样…
service solr stop
systemctl start solr
然后我可以运行";systemctl状态解决方案服务";并获得更好的结果。。。
# systemctl status solr.service
? solr.service - Apache SOLR
Loaded: loaded (/etc/systemd/system/solr.service; enabled; vendor preset: disabled)
Active: active (running) since Thu 2020-10-15 19:27:34 EDT; 2min 49s ago
Process: 78134 ExecStart=/opt/solr/bin/solr start (code=exited, status=0/SUCCESS)
Main PID: 78181 (java)
Tasks: 55
Memory: 2.1G
CGroup: /system.slice/solr.service
+-78181 java -server -Xms31g -Xmx31g -XX:+UseG1GC -XX:MaxGCPauseMillis=500 -XX:+UnlockExperimentalVMOptions -XX:G1MaxNewSizePer...
另外,我不知道为什么我没有从。。。
systemctl -l | grep solr
systemctl命令本身应该等效于";systemctl列表单元";-l标志是--all的别名。这应该列出已知的单元,无论是否处于活动状态。