簡體   English   中英

如何創建 solr 服務以在重新啟動時啟動 solr

[英]How to create solr service for starting solr on reboot

我正在嘗試創建一個 solr 服務腳本,我可以使用它在重新啟動時自動啟動 solr。 這是我看到推薦的腳本:

#!/bin/sh

# Starts, stops, and restarts Apache Solr.
#
# chkconfig: 35 92 08
# description: Starts and stops Apache Solr

SOLR_DIR="/var/www/html/fas/solr/solr-latest"
JAVA_OPTIONS="-Xmx1024m -DSTOP.PORT=8983 -DSTOP.KEY=mustard -jar /var/www/html/fas/solr/solr-latest/server/start.jar"
LOG_FILE="/var/log/solr.log"
JAVA="/bin/java"

case $1 in
    start)
        echo "Starting Solr"
        cd $SOLR_DIR
        $JAVA $JAVA_OPTIONS 2> $LOG_FILE &
        ;;
    stop)
        echo "Stopping Solr"
        cd $SOLR_DIR
        $JAVA $JAVA_OPTIONS --stop
        ;;
    restart)
        $0 stop
        sleep 1
        $0 start
        ;;
    *)
        echo "Usage: $0 {start|stop|restart}" >&2
        exit 1
        ;;
esac

我想我已經為腳本中的變量設置了適當的值。 但是當我嘗試運行腳本時,我得到“連接被拒絕”。

$ service solr stop
Stopping Solr
java.net.ConnectException: Connection refused (Connection refused)

無論我是否以 root 身份運行腳本,我都會得到相同的結果。

不過,我可以通過這種方式停止和啟動 solr:

/path/to/my/solr/bin/solr start

所以我也嘗試在 /etc/init.d/solr-start 創建這個腳本

#!/bin/sh

# Starts Apache Solr.
#
# chkconfig: 35 92 08
# description: Starts Apache Solr

/var/www/html/fas/solr/solr-latest/bin/solr start

此腳本在命令行上工作,但在重新啟動時不起作用。 為了讓它在重啟時運行,我做了...

sudo systemctl enable solr-start

但是 solr 不會在重新啟動時啟動。

我的版本:RHEL 7、Solr 6.6.6

不幸的是,您幾乎沒有提供有關特定 Solr 安裝的詳細信息。 不過,以下 systemd 單元示例可能會提供一個起點。

使用以下內容創建文件/etc/systemd/system/solr.service (並進行調整以使其適合您的 Solr 安裝):

[Unit]
Description=Apache SOLR
After=syslog.target network.target remote-fs.target nss-lookup.target systemd-journald-dev-log.socket
Before=multi-user.target
Conflicts=shutdown.target

[Service]
User=solr
# Assumes SOLR_PID_DIR; change port if it differs
PIDFile=/var/lib/solr/solr-8983.pid
# Assumes proper configuration in /etc/default/solr.in.sh
Environment=SOLR_INCLUDE=/etc/default/solr.in.sh
Restart=on-failure
ExecStart=/path/to/my/solr/bin/solr start
ExecStop=/path/to/my/solr/bin/solr stop
Restart=on-failure

[Install]
WantedBy=multi-user.target

以 root 身份執行以下命令或在它們前面加上sudo

  • systemctl daemon-reload
  • systemctl enable solr.service
  • systemctl start solr.service
  • systemctl status solr.service

如果您在 systemd 單元中需要不同(或更多)選項,建議上游將此GitHub Gist作為上游包含的可能起點。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM