Как запустить Solr автоматически?

В данный момент я должен перейти в /usr/java/apache-solr-1.4.0/example и затем сделайте:

java -jar start.jar

Как я заставляю это запускаться автоматически на начальной загрузке?

Я нахожусь на общем сервере Linux.

49
задан Peter Mortensen 28 December 2012 в 21:07
поделиться

4 ответа

Если у вас есть 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 поддерживает это (что она обычно поддерживает), это гарантирует, что ваш сценарий будет запущен при запуске.

Если у меня нет опечаток выше, это должно сработать для вас. Дай мне знать, как дела.

70
ответ дан 7 November 2019 в 11:14
поделиться

Проверка

man 5 crontab

см. Если @reboot поддерживается в системе Linux, которую вы используете.

0
ответ дан 7 November 2019 в 11:14
поделиться

Поскольку вы находитесь на общем 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
76
ответ дан 7 November 2019 в 11:14
поделиться

Следуйте комментариям 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

3
ответ дан 7 November 2019 в 11:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: