В данный момент я должен перейти в /usr/java/apache-solr-1.4.0/example
и затем сделайте:
java -jar start.jar
Как я заставляю это запускаться автоматически на начальной загрузке?
Я нахожусь на общем сервере Linux.
Если у вас есть root-доступ к вашей машине, есть несколько способов сделать это в зависимости от процесса инициализации вашей системы (сценарии инициализации, systemd и т. Д.) )
Но если у вас нет root, cron
предлагает чистый и последовательный способ выполнения программ после перезагрузки.
Во-первых, выясните, где на вашем компьютере находится java. Приведенная ниже команда сообщит вам, где он находится:
$ which java
Затем вставьте следующий код в сценарий оболочки, заменив путь java ниже (/ usr / bin) на путь, полученный с помощью приведенной выше команды.
#!/bin/bash
cd /usr/java/apache-solr-1.4.0/example
/usr/bin/java -jar start.jar
Вы можете сохранить этот сценарий в каком-нибудь месте (например, $ HOME) как start.sh. Дайте ему разрешение на выполнение (для упрощения), выполнив следующую команду:
$ chmod og+x start.sh
Теперь протестируйте сценарий и убедитесь, что он правильно работает из командной строки.
$ ./start.sh
Если все работает хорошо, вам нужно добавить его в один из сценариев запуска вашего компьютера. Самый простой способ сделать это - добавить следующую строку в конец /etc/rc.local .
# ... snip contents of rc.local ...
# Start Solr upon boot.
/home/somedir/start.sh
В качестве альтернативы, если у вас нет разрешения на редактирование rc.local, вы можете добавить его в свой пользовательский crontab. Сначала введите в командной строке следующее:
$ crontab -e
Откроется редактор. Добавьте к нему следующую строку:
@reboot /home/somedir/start.sh
Если ваша система Linux поддерживает это (что она обычно поддерживает), это гарантирует, что ваш сценарий будет запущен при запуске.
Если у меня нет опечаток выше, это должно сработать для вас. Дай мне знать, как дела.
Проверка
man 5 crontab
см. Если @reboot
поддерживается в системе Linux, которую вы используете.
Поскольку вы находитесь на общем Linux-боксе, вам, вероятно, придется попросить системного администратора сделать следующее.
Создайте скрипт запуска в /etc/init.d/solr
.
Скопируйте этот код, мой скрипт запуска Solr, в этот файл:
#!/bin/sh
# Prerequisites:
# 1. Solr needs to be installed at /usr/local/solr/example
# 2. daemon needs to be installed
# 3. Script needs to be executed by root
# This script will launch Solr in a mode that will automatically respawn if it
# crashes. Output will be sent to /var/log/solr/solr.log. A PID file will be
# created in the standard location.
start () {
echo -n "Starting solr..."
# Start daemon
daemon --chdir='/usr/local/solr/example' --command "java -jar start.jar" --respawn --output=/var/log/solr/solr.log --name=solr --verbose
RETVAL=$?
if [ $RETVAL = 0 ]
then
echo "done."
else
echo "failed. See error code for more information."
fi
return $RETVAL
}
stop () {
# Stop daemon
echo -n "Stopping solr..."
daemon --stop --name=solr --verbose
RETVAL=$?
if [ $RETVAL = 0 ]
then
echo "Done."
else
echo "Failed. See error code for more information."
fi
return $RETVAL
}
restart () {
daemon --restart --name=solr --verbose
}
status () {
# Report on the status of the daemon
daemon --running --verbose --name=solr
return $?
}
case "$1" in
start)
start
;;
status)
status
;;
stop)
stop
;;
restart)
restart
;;
*)
echo $"Usage: solr {start|status|stop|restart}"
exit 3
;;
esac
exit $RETVAL
Затем запустите:
chkconfig --add solr
Или (на Ubuntu):
update-rc.d solr по умолчанию
... или, если в вашем дистрибутиве Linux нет chkconfig
(или update-rc.d
), перейдите по ссылке /etc/init. d/solr
на /etc/rc3.d/S99solr
и /etc/rc5.d/S99solr
и /etc/rc3.d/K01solr
и /etc/rc5. d/K01solr
:
% ln -s /etc/init.d/solr /etc/rc3.d/S99solr
% ln -s /etc/init.d/solr /etc/rc5.d/S99solr
% ln -s /etc/init.d/solr /etc/rc3.d/K01solr
% ln -s /etc/init.d/solr /etc/rc5.d/K01solr
Теперь при перезагрузке Solr будет запускаться на уровнях 3 и 5 (консоль с сетью и полным GUI).
Для запуска Solr вручную:
% /etc/init.d/solr start
Следуйте комментариям supermagic, затем следуйте этой
http://codingrecipes.com/service-x-does-not-support-chkconfig
Он говорит:
1 – Copy your script into /etc/init.d folder 2 – cd /etc/init.d 3 – chmod +x myscript 4 – Add these lines, including #, right after #!/bin/bash or #!/bin/sh: # chkconfig: 2345 95 20 # description: Some description # What your script does (not sure if this is necessary though) # processname: myscript
Затем вы можете выполнить
chkconfig - -добавить myscript