#solr #systemd
#solr #systemd
Вопрос:
Ранее сегодня мне удалось получить определение systemd, работающее для solr. Затем я внес изменения в определение и попытался перезагрузить его, и теперь служба почему-то больше не включена, и я не могу ее включить. Если я это сделаю…
systemctl enable solr.service
… нет вывода. Нет сообщения об ошибке. Но тогда, если я это сделаю…
systemctl -l | grep solr
… там ничего нет. Похоже, что при запуске «service solr start» он возвращается к System V. Запускается 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)
Ответ №1:
Очевидно, служба была включена, но мне нужна была немного другая последовательность команд для ее запуска. Мне также кажется, что в моем определении systemd требуется следующее:
Type=forking
Я не думаю, что мне это было нужно раньше, но, похоже, сейчас это необходимо. После каждого изменения в моем файле solr.service мне нужно запустить «systemctl daemon-reload», а затем перезапустить solr.
Мне также нужно было убедиться, что solr еще не запущен (с System V), а затем запустить его с помощью systemctl, вот так…
service solr stop
systemctl start solr
Тогда я мог бы запустить «systemctl status solr.service» и получить лучший результат…
# 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 list-units», а флаг -l является псевдонимом для —all . Здесь должны быть перечислены известные устройства, активные или нет.