tag mp3tag kid3 editar easytag linux solr shared boot

linux - mp3tag - ¿Cómo iniciar Solr automáticamente?



mp3tag ubuntu (8)

Por el momento tengo que ir a /usr/java/apache-solr-1.4.0/example y luego hacer:

java -jar start.jar

¿Cómo puedo hacer que esto comience automáticamente en el arranque?

Estoy en un servidor Linux compartido.


Agregar las siguientes líneas a mi archivo /etc/init.d/solr funciona para ser compatible con Red Hat Linux (los copié desde /etc/init.d/mysql después de leer los comentarios de otros aquí).

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


Como está en una caja Linux compartida, tendrá que pedirle al administrador del sistema que haga lo siguiente, probablemente.

Cree un script de inicio en /etc/init.d/solr .

Copie este código, mi script de inicio de Solr, en ese archivo:

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

Entonces corre:

chkconfig --add solr

O (en Ubuntu):

update-rc.d solr defaults

... o, si su distribución de Linux no tiene chkconfig (o update-rc.d ), enlace /etc/init.d/solr a /etc/rc3.d/S99solr y /etc/rc5.d/S99solr y /etc/rc3.d/K01solr y /etc/rc5.d/K01solr :

% ln -s /etc/init.d/solr /etc/rc3.d/S99solr % ln -s /etc/init.d/solr /etc/rc5.d/S99solr % ln -s /etc/init.d/solr /etc/rc3.d/K01solr % ln -s /etc/init.d/solr /etc/rc5.d/K01solr

Ahora, al reiniciar Solr se iniciará en los niveles de ejecución 3 y 5 (consola con red y GUI completa).

Para iniciar solr, ejecute manualmente:

% /etc/init.d/solr start


Comprobar

man 5 crontab

Vea si @reboot es compatible con el sistema Linux que está utilizando.


Hay tres pasos que debes hacer aquí:

  1. Cree la secuencia de comandos, hágalo ejecutable y colóquelo en el lugar correcto.
  2. Haga que el script se inicie correctamente al reiniciar.
  3. Bonificación: configure un script de rotación de log para que los registros no se salgan de control.

Para el número uno, he ajustado el guión de Supermagic desde arriba. Estaba bien, pero tenía una cantidad de errores tipográficos, carecía de alguna funcionalidad (estado, reinicio), no usaba la utilidad daemon de manera muy efectiva.

Aquí está mi versión de la secuencia de comandos (asegúrese de tener instalado daemon para que funcione):

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

Coloque este script en /etc/init.d/solr, hágalo ejecutable, y debería estar bien con el paso uno. Ahora puede iniciar / detener / reiniciar / registrar un daemon de Solr con /etc/init.d/solr start | stop | restart | status

Para el paso dos, ejecute lo siguiente en una máquina Ubuntu (no sé acerca de Redhat):

update-rc.d solr defaults

Una vez hecho esto, estás en muy buena forma, pero es probable que quieras rotar los registros correctamente en algún momento, así que aquí hay una buena configuración para los registros:

/var/log/solr/*.log { weekly rotate 12 compress delaycompress create 640 root root postrotate /etc/init.d/solr restart endscript }

Coloque ese archivo en /etc/logrotate.d/solr, y debería estar listo, suponiendo que logrotate se esté ejecutando (normalmente lo está).


Si tiene acceso de root a su máquina, hay varias maneras de hacerlo en base al flujo de inicialización de su sistema (scripts de inicio, sistemad, etc.)

Pero si no tiene root, cron tiene una forma limpia y consistente de ejecutar programas al reiniciar.

Primero, averigua dónde se encuentra java en tu máquina. El siguiente comando le dirá dónde está:

$ which java

Luego, inserte el siguiente código en un script de shell, reemplazando la ruta java debajo (/ usr / bin) con la ruta que obtuvo del comando anterior.

#!/bin/bash cd /usr/java/apache-solr-1.4.0/example /usr/bin/java -jar start.jar

Puede guardar esta secuencia de comandos en alguna ubicación (por ejemplo, $ HOME) como start.sh. Dale permiso de ejecución mundial (para simplificar) ejecutando el siguiente comando:

$ chmod og+x start.sh

Ahora, pruebe el script y asegúrese de que funciona correctamente desde la línea de comando.

$ ./start.sh

Si todo funciona bien, debe agregarlo a uno de los scripts de inicio de su máquina. La forma más sencilla de hacerlo es agregar la siguiente línea al final de /etc/rc.local .

# ... snip contents of rc.local ... # Start Solr upon boot. /home/somedir/start.sh

Alternativamente, si no tiene permiso para editar rc.local, puede agregarlo a su crontab de usuario como tal. Primero escriba lo siguiente en la línea de comando:

$ crontab -e

Esto abrirá un editor. Agregue la siguiente línea a él:

@reboot /home/somedir/start.sh

Si su sistema Linux lo admite (lo que generalmente hace), esto asegurará que su script se ejecute al inicio.

Si no tengo ningún error tipográfico arriba, debería funcionar bien para ti. Déjame saber como va.


Sigue los comentarios de supermagic, luego sigue esto

http://codingrecipes.com/service-x-does-not-support-chkconfig

Él dice,

1 – Copy your script into /etc/init.d folder 2 – cd /etc/init.d 3 – chmod +x myscript 4 – Add these lines, including #, right after #!/bin/bash or #!/bin/sh: # chkconfig: 2345 95 20 # description: Some description # What your script does (not sure if this is necessary though) # processname: myscript

Entonces puedes hacer

chkconfig --add myscript


Ya respondí esta pregunta una vez , pero esa respuesta fue para sistemas operativos que usan SysV y esta es para sistemas operativos más nuevos que usan cada vez más systemd .

Como en mi otra respuesta , hay tres cosas que debes hacer aquí:

  1. Crea el guion y ponlo en el lugar correcto.
  2. Haga que el script se inicie correctamente al reiniciar.
  3. Bonificación: hacer que los registros systemd persistentes.

1. Creando el script y poniéndolo en el lugar correcto

Aquí hay un archivo de unidad del sistema que puede usar (estos reemplazan los archivos de inicio de SysV). solr.service .

[Unit] Description=Apache Solr After=syslog.target network.target remote-fs.target nss-lookup.target [Service] Type=simple Environment="XMX=2G" WorkingDirectory=/usr/local/solr/example ExecStart=/usr/bin/java -jar -server -Xmx${XMX} start.jar Restart=on-failure LimitNOFILE=10000 [Install] WantedBy=multi-user.target

Tenga en cuenta que hay una configuración para la memoria de Solr. Es probable que desee ajustar eso para sus propios fines. Si tiene varias variables que está pasando a systemd , puede hacerlo con la directiva EnvironmentFile .

Más documentación para estos archivos está aquí .

2. Haga que el script se inicie correctamente al arrancar

Esto es bastante simple, pero hay reglas. Para que comience en el arranque, coloque el archivo en /etc/systemd/system/solr.service . No puede usar un enlace simbólico en este directorio, no intente .

Una vez que esté ahí, puede habilitar el daemon para que se ejecute al inicio con:

sudo systemctl enable solr

Y puede comenzar, detener, registrarlo con:

sudo systemctl {start|stop|status} solr

3. Hacer registros systemd persistentes

De forma predeterminada, los registros systemd no son persistentes y se pierden cada vez que reinicia el sistema. Si eso no es lo que deseas, puedes hacer que sea persistente creando un directorio:

sudo mkdir -p /var/log/journal/

Y luego reiniciando el daemon de diario systemd :

sudo systemctl restart systemd-journald

Una vez que esté completo, el daemon de diario de systemd recibirá todos los stdout y stderr que Solr crea y se almacenarán en un formato binario en /var/log/journal/ .

La forma en que systemd maneja el registro es bastante clara y vale la pena estudiarla si no está familiarizado con ella. Mientras tanto, solo debes saber que para leer tus entradas de registro necesitarás usar una nueva herramienta llamada journalctl . Por ejemplo, esto seguirá tus registros de solr:

journalctl -u solr -f

Y también hay indicadores para hacer filtros basados ​​en fechas y cosas por el estilo.

3.1 Ajuste de los archivos de registro

Sección de bonificación Si desea modificar los archivos de registro, puede leerlos al respecto en la documentación aquí , pero los valores predeterminados son en realidad muy seguros y sanos (los registros están comprimidos de manera predeterminada, no pueden crecer demasiado, tienen una tasa limitada y están escritos al disco en lotes).


script init.d / solr probado en Centos 6 / Amazon Linux. Envuelve la CLI nativa de solr.

#!/bin/bash # description: Starts and stops Solr production PIDFILE=/var/run/solr.pid SOLR_HOME=/usr/share/solr START_COMMAND="$SOLR_HOME/bin/solr start -p 8984 -noprompt -m 1g" NAME="Solr" start() { echo "Starting $NAME" if [ -f $PIDFILE ]; then echo -n "$PIDFILE exists. $NAME may be running." else str=`$START_COMMAND` pid=`echo $str | grep -o "pid=[0-9]*" | grep -o "[0-9]*"` if [ "$pid" == "" ]; then echo "[FATAL ERROR] Failed to extract pid. Exiting!" exit 1 fi echo $pid > $PIDFILE fi return 0 } case "$1" in start) start ;; stop) echo "Stopping $NAME .." $SOLR_HOME/bin/solr stop rm -f $PIDFILE ;; status) $SOLR_HOME/bin/solr status ;; restart) $0 stop #sleep 2 $0 start ;; *) echo "Usage: $0 (start | stop | restart | status)" exit 1 ;; esac exit $?