Múltiples * Casi * processs idénticos en un server Linux

¿Cuál es la mejor manera de ejecutar múltiples processs prácticamente idénticos de Java en el mismo server Linux?

Explicación del medio ambiente:

Estamos ejecutando un set de processs Java que proporcionan una cuadrícula de cálculo. La única diferencia entre los processs, es el parámetro de la command-line que identifica el nombre del nodo. Algo como:

(Proceso 1) Java -DNodeNumber = 1 CalculationNode

(Proceso 2) Java -DNodeNumber = 2 CalculationNode

(Proceso 3) Java -DNodeNumber = 3 CalculationNode

(Proceso 4) Java -DNodeNumber = 4 CalculationNode

El guión que inicia un process de cada uno es relativamente simple, pero no trivial ya que hay alnetworkingedor de 15 otros parameters que se necesitan – son idénticos para todos los processs

Necesito poder reiniciar un process si falla con el parámetro SAME NodeNumber. En otras palabras, si el nodo 3 falla, necesito reiniciarlo como nodo 3.

3 Solutions collect form web for “Múltiples * Casi * processs idénticos en un server Linux”

Yo diría que si un process falla, necesita arreglarlo para no fallar más.

Para hacer lo que usted espera, algo como esto sería suficiente (sin probar, use a su propio riesgo):

#!/bin/bash for i in $(seq 1 4) do ( echo "Starting node $i..." while ! java -DNodeNumber=$i CalculationNode do sleep 1 echo "Restarting node $i..." done ) & done wait 

Cada process tiene que terminar con el código de salida cero para romper el bucle. De lo contrario, es reiniciado por el script.

La solución de Juliano podría funcionar en casos simples, pero no cubre todas las situaciones. Por ejemplo, uno de sus processs podría salir con el estado de salida 0 aunque se haya producido un error, si hay un error en el código de event handling errores. O podría bloquear o ejecutar en algún otro tipo de bucle infinito sin hacer nada útil.

Así que si quieres una solución más elegante, testing Nagios . Le permite escribir complementos para tareas especiales de monitoreo.

Siempre puede usar daemontools para monitorear y reiniciar sus processs.

  • RHEL / Apache - significado de WCHAN = "semtim"
  • process ksoftirqd consume permanente 15% de carga de la CPU
  • Determinar qué files se abrió un process (Linux)
  • ¿Cómo reinicio automáticamente un process en la reinitialization / salida del process del server?
  • ¿Hay algún beneficio en la gestión de progtwigs con un gestor de processs en lugar de con init.d?
  • Proceso de matar problemas
  • Establecer afinidad en Windows Server 2003
  • ¿Cómo puedo matar processs anteriores a "t"?
  • Eliminar un process ejecutado por un usuario específico
  • Mostrar el uso de la stack de kernel para un process en Linux
  • ¿Cómo puedo conservar un ID de process para uso posterior?
  • ¿Cómo enviar trabajos a background sin detenerlos?
  • Outlook 2007 que ejecuta varias instancias
  • El linux y los temas del servidor de Windows, como ubuntu, centos, apache, nginx, debian y consejos de red.