GNU/Linux >> Linux Esercitazione >  >> Linux

Stato e dipendenze del servizio Solaris?

Sto creando manifesti di servizio per MySQL e un servizio WebLogic che dipende dal servizio MySQL. Voglio che tutti utilizzino il modello di gestione "wait" (esegui un processo in primo piano). Ho alcune domande su questa configurazione.

Innanzitutto, come faccio a dettare lo stato di un servizio? Ad esempio, quando ho creato script MySQL prima di utilizzare i servizi, dopo aver avviato mysqld_safe script in background, eseguivo il ping fino a quando non ricevevo una risposta; Volevo assicurarmi che fosse pronto prima di continuare. Ora, con il servizio, passa immediatamente a "online" anche se non sono sicuro che sia effettivamente pronto o meno.

Nel caso in cui non ci sia una buona soluzione per questa domanda, ho inserito il ping del DB MySQL nello script WebLogic stesso e l'uscita con uno stato di 1 dopo un certo numero di tentativi. Tuttavia, il servizio verrà riavviato continuamente. Come faccio a forzare il servizio ad entrare in modalità manutenzione dopo un'uscita diversa da zero?

Alla fine, ho fatto funzionare le dipendenze in modo tale che il servizio WebLogic non si avvii senza che il servizio MySQL sia online, ma ho due domande al riguardo:

  1. Come faccio a fare in modo che il servizio WebLogic tenti di avviare il servizio MySQL quando è inattivo?
  2. Quando il servizio WebLogic è già online, come posso fare in modo che venga rimosso se il servizio MySQL si interrompe?

Risposta accettata:

1 – Definire il servizio mysql come servizio di dipendenza durante la configurazione del manifest XML per il servizio weblogic. In questo modo, il tuo weblogic non verrà avviato finché il servizio mysql non viene segnalato come completamente online. Sembra logico, dal momento che la tua app weblogic dipenderebbe dalla disponibilità del servizio mysql, non farebbe tentativi inutili di eseguire l'istruzione db connect/sql quando il servizio mysql db è inattivo.

2 – Poiché il servizio di dipendenza va offline/stato degradato, anche il tuo servizio weblogic andrà offline e non sarà in esecuzione. Quindi non c'è alcuna possibilità per il servizio weblogic di tentare di riportare il servizio mysql online mentre ne ha la possibilità, poiché esso stesso sta entrando in modalità di manutenzione. Inoltre, non vi è alcuna garanzia per l'avvio di weblogic in seguito poiché il servizio mysql sta entrando in modalità manutenzione/offline/degradato, smf contrassegnerà anche il servizio weblogic degradato/offline e quindi non può essere utilizzato per avviare il servizio mysql. Questo può essere un chiaro caso di dipendenza ciclica, che dovrebbe essere risolto utilizzando un terzo modulo/cronjob/servizio transitorio per occuparsi di entrambi i servizi.

Correlati:come verificare quali segnali sta ascoltando un processo?

Ora che è chiaro che il principale servizio di dipendenza è mysql da eseguire online quasi sempre per la disponibilità e il funzionamento pulito di weblogic, suggerirei di utilizzare un terzo modulo/script (come farebbe anche un cronjob) che monitori gli stati del servizio mysql come priorità preferita e poi del servizio weblogic. Dovrebbe occuparsi della gestione/esecuzione dei comandi di guarigione SMF nel caso in cui uno qualsiasi dei servizi si interrompesse.


Linux
  1. Installa Lighttpd con PHP5 FastCGI e MySQL su Fedora 21

  2. Nozioni di base su utenti e database MySQL

  3. Nozioni di base su Vhost e blocchi server

  4. RHEL 7 – RHCSA Note:Avvia, arresta e controlla lo stato dei servizi di rete.

  5. Dipendenze di Systemd e ordine di avvio

Guida agli eventi MySQL e all'utilità di pianificazione degli eventi

Monitora le connessioni e le query MySQL con mytop

Cerca e sostituisci MySQL

Ubuntu:avvia, arresta, riavvia i servizi

Come eseguire il multi-master MySQL con Percona e Keepalived

Come risolvere l'avvio e l'arresto imprevisti del servizio MySQL