Como parar o serviço Solr a partir da linha de comando

1

Eu costumava iniciar o Solr com este comando:

java -jar start.jar

e tudo que eu tive que fazer para parar foi pressionar Control + C

Mas então eu comecei assim:

java -jar start.jar &

O que inicia como um processo em segundo plano para que eu possa recuperar o shell depois que ele for iniciado. Mas agora eu não sei como parar. Eu estou usando o Ubuntu Server.

    
por JakeRow123 21.04.2012 / 06:08

3 respostas

2

Você iniciou o processo e colocou em segundo plano. Listar processos em segundo plano com o comando jobs .

Para trazer os processos em segundo plano para o primeiro plano, use fg [job number] . De lá, você pode sair deles normalmente.

EDIT 1

À luz de novas informações, o problema não tem nada a ver com os processos de primeiro plano e plano de fundo. Aparentemente, o processo está sendo iniciado em segundo plano e, em seguida, a janela do terminal está sendo fechada. Assim, não é mais um trabalho anexado ao terminal.

Nesse caso, você simplesmente mata o processo associado ao Solr. Use ps para encontrar o processo e kill para pará-lo.

    
por 21.04.2012 / 06:20
0

Crie um deamon, mondifique os caminhos de acordo com suas necessidades.

digite o código aqui Passos para instalar o SOLR como um daemon

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 $?

Agora você pode usar /etc/init.d/solr stop | start | restart

    
por 21.04.2012 / 06:28
0

Eu obtive isso do lucidWorks / app / bin / stop.sh, espero que funcione para você

#!/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
    
por 27.09.2014 / 14:01