如何创建solr服务以便在重新引导时启动solr

mzsu5hc0  于 2022-11-05  发布在  Solr
关注(0)|答案(1)|浏览(224)

我正在尝试创建一个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,解决方案6.6.6

vhmi4jdf

vhmi4jdf1#

不幸的是,您几乎没有提供任何关于特定Solr安装的详细信息。
创建包含以下内容的文件/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
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 Gistsuggested to upstream作为可能的起点上游包括。

相关问题