2015-01-08 2 views
1

Я пытаюсь сделать solr для запуска в качестве сценария запуска в /etc/init.d/solr. Это скрипт, который я copypasted от How to start Solr automatically?run solr как daemon

#!/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. 

# Comments to support chkconfig on Red Hat Linux 
# chkconfig: 2345 64 36 
# Description: A very fast and reliable search engine. 
# processname solr 

# Source function library. 
. /etc/init.d/functions 

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 

Я сделал все, как описано в приведенной выше ссылке. Но получить ошибку

service solr start 
Starting solr.../etc/init.d/solr: Usage: daemon [+/-nicelevel] {program} 
failed. See error code for more information. 

чтение https://blog.hazrulnizam.com/create-init-script-centos-6/ Я не понимаю, почему демон был написан неправильно

ответ

0

Это не работает, потому что daemon функция (от /etc/init.d/functions) изменился с 2010 года (когда сценарий был отправлен) и больше не принимает те же аргументы. Вам нужно будет переписать строку daemon, чтобы принять поддерживаемые в настоящее время аргументы.

Я посмотрел на daemon функции на поле CentOS 6, и это выглядит, как вы могли бы заменить эту строку:

daemon --chdir='/usr/local/solr/example' --command "java -jar start.jar" --respawn --output=/var/log/solr/solr.log --name=solr --verbose 

только с этим:

daemon "java -jar /usr/local/solr/example/start.jar" 

(предполагая, что solr установлен в /usr/local/solr/example).

Смежные вопросы