Я пытаюсь запустить Apache Solr 4.10.4 в качестве службы в Ubuntu 14.04.
Я написал следующий файл конфигурации выскочки:
sudo vim /etc/init/my-solr-job.conf
# my-solr - Search Backend Engine
description "my solr search engine"
start on runlevel [2345]
stop on runlevel [!2345]
respawn
respawn limit 3 60
env JAVA_HOME="/usr/lib/jvm/java-7-openjdk-amd64"
exec $JAVA_HOME/bin/java -jar /home/xyzuser/solr-4.10.4/example/start.jar
#Tried this also
#exec /home/xyzuser/solr-4.10.4/bin/solr -f -p 8983
Когда я запускаю следующие команды, я получаю следующие результаты: -
Команда 1
init-checkconf -d /etc/init/my-solr.conf
DEBUG: upstart_path=/sbin/init
DEBUG: initctl_path=/sbin/initctl
DEBUG: Setting XDG_RUNTIME_DIR='/tmp/init-checkconf.zPFmEfcI7D'
DEBUG: Unsetting UPSTART_SESSION (unix:abstract=/com/ubuntu/upstart- session/1000/2037)
DEBUG: confdir=/tmp/init-checkconf.QFW9ZI7uGv
DEBUG: file=/etc/init/my-solr.conf
DEBUG: job=my-solr
DEBUG: upstart_out=/tmp/init-checkconf-upstart-output.ykMpMbTBU6
DEBUG: upstart_cmd=/sbin/init --user --no-dbus --no-startup-event -- verbose --confdir /tmp/init-checkconf.QFW9ZI7uGv
DEBUG: Upstart pid=5661
DEBUG: Joining Upstart session 'unix:abstract=/com/ubuntu/upstart-session/1000/5661'
DEBUG: Waiting for Upstart to initialise (attempt 1)
DEBUG: Secondary Upstart (/sbin/init --user --no-dbus --no-startup- event --verbose --confdir /tmp/init-checkconf.QFW9ZI7uGv) running with PID 5661
File /etc/init/my-solr.conf: syntax ok
DEBUG: Restoring XDG_RUNTIME_DIR to '/run/user/1000'
DEBUG: Restoring UPSTART_SESSION to 'unix:abstract=/com/ubuntu/upstart-session/1000/2037'
DEBUG: Stopping secondary Upstart (running with PID 5661)
Команда 2
initctl check-config my-solr
initctl: Invalid job class: my-solr
Команда 3
initctl list | grep my-solr
<Output is nothing. I tried using initctl reload-configuration>
Команда 4
sudo service my-solr start
start: Unknown job: my-solr
Команда 5
ln -s /etc/init/my-solr.conf /etc/init.d/my-solr
<Did not make any difference>
Кто-нибудь может мне с этим помочь? Я не понимаю, что делаю не так?
Я отключил эту переменную env, и она сработала как шарм
env | grep UPSTART
UPSTART_SESSION=unix:abstract=/com/ubuntu/upstart-session/1000/2037
Команда, которую я использовал:
unset UPSTART_SESSION
Но я так и не понял первопричину этого.
Я немного изменил файл conf, потому что когда я пытался остановить задание, он давал мне - Ошибка неизвестного экземпляра
Вот мой последний конф -
# my-solr - Search Backend Engine
description "my solr search engine"
start on runlevel [2345]
stop on runlevel [!2345]
respawn
respawn limit 3 60
env JAVA_HOME="/usr/lib/jvm/java-7-openjdk-amd64"
exec /home/xyzuser/solr-4.10.4/bin/solr start -f -p 8983
pre-stop exec /home/xyzuser/solr-4.10.4/bin/solr stop -f -p 8983
Я использовал предварительную остановку, потому что остановка отправляла SIGTERM заданию, поэтому, используя вышеуказанное, я попытался корректно остановить задание.