Processi multipli * Quasi * identici su un server Linux

Qual è il modo migliore per eseguire più processi Almost Identical Java sullo stesso server Linux?

Spiegazione dell'ambiente:

  • Uso di CPUQuota in systemd
  • Software IPSec che può utilizzare più core CPU
  • Linux howto / tutorial / siti di aiuto?
  • Problemi di configuration di HP MSA2000 SAN - critica di installazione (msa2324sa)
  • Impostazioni TCP a bassa latenza su Ubuntu
  • Il traffico di return di return per correggere il gateway dipende dal servizio
  • Stiamo eseguendo un insieme di processi Java che forniscono una griglia di calcolo. L'unica differenza tra i processi, è il parametro della row di command che identifica il nome del nodo. Qualcosa di simile a:

    (Processo 1) Java -DNodeNumber = 1 CalculationNode

    (Processo 2) Java -DNodeNumber = 2 CalculationNode

    (Processo 3) Java -DNodeNumber = 3 CalculationNode

    (Processo 4) Java -DNodeNumber = 4 CalculationNode

    Lo script che inizia un process è relativamente semplice, ma non banale visto che ci sono circa altri 15 parametri necessari – SONO IDENTICI PER TUTTI I PROCESSI

    Devo essere in grado di riavviare un process se non riesce con il parametro SAME NodeNumber. In altre parole – se Nodo 3 fallisce, ho bisogno di riavviarlo come Nodo 3.

    3 Solutions collect form web for “Processi multipli * Quasi * identici su un server Linux”

    Vorrei sostenere che se un process non riesce, è necessario risolvere il problema per non riuscire più.

    Per fare quello che ti aspetteresti, qualcosa di simile sarebbe sufficiente (non testato, utilizzare a proprio rischio):

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

    Ogni process deve terminare con il codice di output zero per rompere il ciclo. Altrimenti, viene riavviato dallo script.

    La soluzione di Juliano potrebbe funzionare in casi semplici, ma non copre each situazione. Ad esempio, uno dei tuoi processi potrebbe uscire con lo stato di output 0 anche se si è verificato un errore nel caso in cui si verifichi un errore nel codice di gestione degli errori. O potrebbe bloccarsi o correre in qualche altro tipo di ciclo infinito senza fare niente di utile.

    Quindi, se volete una soluzione affascinante, prova Nagios . Consente di scrivere plugin per particolari attività di monitoraggio.

    È sempre ansible utilizzare daemontools per monitorare e riavviare i processi.

    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.