私は以前、次のコマンドでSolrを起動していました。
Java -jar start.jar
それを止めるために私がしなければならなかったのはControl + C
を押すことだけでした
しかし、それから私はそれをこのように始めました:
Java -jar start.jar &
これはバックグラウンドプロセスとして開始するので、開始後にシェルを取り戻すことができます。しかし今、私はそれを止める方法がわかりません。 Ubuntuサーバーを使用しています。
プロセスを開始し、バックグラウンドに配置しました。 jobs
コマンドを使用してバックグラウンドプロセスを一覧表示します。
バックグラウンドプロセスをフォアグラウンドにするには、fg [job number]
を使用します。そこから、通常どおり終了できます。
新しい情報に照らして、問題はフォアグラウンドおよびバックグラウンドプロセスとは何の関係もありません。どうやらプロセスはバックグラウンドで開始されており、ターミナルウィンドウは閉じられています。したがって、それはもはや端末に接続されたジョブではありません。
この場合、Solrに関連付けられているプロセスを強制終了するだけです。 ps
を使用してプロセスを検索し、kill
を使用してプロセスを停止します。
デーモンを作成し、必要に応じてパスをモンディファイします。
ここにコードを入力してくださいSOLRをデーモンとしてインストールする手順
create /etc/init.d/solr.production and copy the below contents into the file. Please change all necessary paths.
change directory to /etc/init.d
run Sudo /sbin/chkconfig --add solr.production
run Sudo /sbin/service solr.production start
run ps -Af | grep start.jar to check that it is running
run cat /var/run/solr.production.pid (change path if needed) to see if PID value is correct.
/etc/init.d/solr.production
#!/bin/bash
# chkconfig: 2345 98 02
# description: Starts and stops Solr production
# source function library
. /etc/rc.d/init.d/functions
set -e
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
SOLR_HOME=/var/apps/solr
PIDFILE=/var/run/solr.production.pid
START_COMMAND="/usr/lib/jdk1.6.0_03/bin/Java -Xms512M -Xmx1024M -jar start.jar"
LOG_FILE="$SOLR_HOME/logs/console.log"
NAME="Solr (production)"
start() {
echo -n "Starting $NAME"
if [ -f $PIDFILE ]; then
echo -n "$PIDFILE exists. $NAME may be running."
else
cd $SOLR_HOME
$START_COMMAND 2 > $LOG_FILE &
sleep 2
echo `ps -ef | grep -v grep | grep "$START_COMMAND" | awk '{print $2}'` > $PIDFILE
echo "Done"
fi
return 0
}
stop() {
echo -n "Stopping $NAME"
kill `cat $PIDFILE`
rm $PIDFILE
echo "Done"
return 0
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
sleep 5
start
;;
*)
echo "Usage: $0 (start | stop | restart)"
exit 1
esac
exit $?
これで、/ etc/init.d/solr stop | start | restartを使用できます。
LucidWorks/app/bin /stop.shから入手しました。うまくいくことを願っています。
#!/usr/bin/env bash
# You can override pass the following parameters to this script:
# -lwe_app_dir -lwe_data_dir -lwe_conf_dir -lwe_log_dir
JVM="Java"
# Find location of this script and go up a level to lucidworksAppHome
sdir="`dirname \"$0\"`"
# Stop the processes
$JVM -jar "$sdir/StartUtil.jar" -jvm_cmd $JVM ${1+"$@"} stop