Supervisor è un sistema client / server che permette agli utenti di controllare una serie di processi su sistemi operativi UNIX-like. E 'stato ispirato dalla seguente:
- E 'spesso scomodo per necessità di scrivere script "rc.d" per ogni singola istanza di processo. script rc.d sono una grande forma minimo comune denominatore del processo di inizializzazione / autostart / gestione, ma possono essere doloroso per scrivere e mantenere. Inoltre, gli script rc.d non possono riavviare automaticamente il processo si è schiantato e molti programmi non riavviare si correttamente su un incidente. Supervisord inizia processi come i suoi sottoprocessi, e può essere configurato per riavviarli automaticamente un incidente. Può anche essere configurato automaticamente per avviare i processi di propria invocazione.
- E 'spesso difficile da ottenere accurate up / down stato su processi su UNIX. Pidfile spesso si trovano. Supervisord avvia processi come sottoprocessi, in modo che sa sempre il vero su stato / giù dei suoi figli e può essere interrogato facilmente per questi dati.
- Gli utenti che hanno bisogno di controllare lo stato del processo spesso bisogno solo di farlo. Non vogliono o hanno bisogno di vera accesso shell alla macchina su cui i processi sono in esecuzione. Supervisorctl permette una forma molto limitata di accesso alla macchina, permettendo in sostanza agli utenti di vedere lo stato del processo e controllo sottoprocessi supervisord controllato attraverso l'emissione di "stop", "start", e "restart" comandi da un semplice shell o interfaccia utente web.
- Gli utenti hanno spesso bisogno di controllare i processi su molte macchine. Supervisor fornisce un meccanismo semplice, sicuro e uniforme in modo interattivo e automaticamente il controllo dei processi su gruppi di macchine.
- Processi in ascolto sulle porte "basse" TCP spesso bisogno di essere avviato e riavviato come utente root (un misfeature UNIX). Di solito è il caso che è perfettamente bene per permettere alle persone "normali" per fermare o riavviare un tale processo, ma fornendo loro l'accesso alla shell è spesso impraticabile, e fornendo loro l'accesso root o l'accesso sudo è spesso impossibile. E 'anche (giustamente) difficile da spiegare loro perché questo problema esiste. Se supervisord viene avviato come root, è possibile consentire agli utenti "normali" di controllare tali processi, senza bisogno di spiegare la complessità del problema per loro.
- Processi spesso bisogno di essere avviato e fermato in gruppi, a volte anche in un "ordine di priorità". E 'spesso difficile da spiegare alla gente come fare questo. Supervisor consente di assegnare le priorità ai processi, e permette all'utente di emettere comandi tramite il client supervisorctl come "ricominciare tutto", e "riavviare tutti", che li avvia in ordine di priorità preassegnato. Inoltre, i processi possono essere raggruppati in "gruppi di processo" e un insieme di processi logicamente correlati possono essere fermato e ha iniziato come è stato aggiunto un sistema unit.otification.
Cosa c'è di nuovo in questo rilascio:
- Il comportamento dell'utente dell'opzione programma è cambiato. In tutte le versioni precedenti, se supervisord non è riuscito a passare l'utente, un avvertimento sarebbe stata inviata al log stderr, ma il processo figlio sarebbe ancora deposto le uova. Ciò significa che un errore nel file di configurazione potrebbe provocare un processo figlio di essere involontariamente generato come root. Ora, supervisord non deporrà le uova il bambino meno che non fosse in grado di passare con successo per l'utente. Grazie a Igor Partola per aver segnalato il problema.
- Se un utente specificato nel file di configurazione non esiste sul sistema, supervisord stamperà un errore e si rifiutano di avviare.
- tornò una modifica al disboscamento introdotta in 3.0b1 che aveva lo scopo di consentire a più processi di accedere allo stesso file con il gestore del registro rotante. L'implementazione ha causato supervisord crash durante reload e perdite handle di file. Inoltre, dal momento che le opzioni di rotazione log sono dati in base al programma, le configurazioni impossibili potrebbero essere creati (opzioni di rotazione in conflitto per lo stesso file). Dato questo e che supervisord ora ha il supporto syslog, si è deciso di rimuovere questa funzionalità. Un avvertimento è stato aggiunto alla documentazione che due processi non possono accedere allo stesso file.
- Risolto un bug per cui il comando di analisi = potrebbe causare supervisord crash se shlex.split () non riesce, come ad esempio un cattivo citando. Patch by Scott Wilson.
- È ora possibile utilizzare supervisorctl su una macchina con nessun file supervisord.conf fornendo le informazioni di connessione nelle opzioni della riga di comando. Patch di Jens Rantil.
- Risolto un bug per cui supervisord potrebbe andare in crash se il gestore syslog è stato utilizzato e supervisord ricevuto SIGUSR2 (log riaprire richiesta).
- Risolto un bug XML-RPC in cui chiamare supervisor.getProcessInfo () con un brutto nome causerebbe un 500 Internal Server Error piuttosto che restituire un errore BAD_NAME.
- Aggiunta una favicon per l'interfaccia web. Patch per Caio Ariede.
- Risolto un fallimento del test per utilizzo scorretto di ora legale nelle prove childutils. Patch di Ildar Hizbulin.
- Risolto un certo numero di pyflakes avvertenze per le variabili non utilizzate, le importazioni, e codice morto. Patch by Philippe Ombredanne.
Cosa c'è di nuovo nella versione 3.0 Beta 1:
- Risolto un bug per cui l'analisi ambientale = non ha verifica che le coppie chiave / valore sono stati separati correttamente. Patch by Martijn Pieters.
- Corretto un bug nel codice del server HTTP che potrebbe causare inutili ritardi durante l'invio di grandi risposte. Patch by Philip Zeyliger.
- Quando supervisord avvia come root, se il flag -c non è stato fornito, un avviso viene ora emesso alla console. Motivazione: supervisord cerca nella directory di lavoro corrente per un file supervisord.conf; Qualcuno potrebbe ingannare l'utente root in partenza supervisord mentre cd'ed in una directory che ha un supervisord.conf canaglia.
- Un avvertimento è stato aggiunto alla documentazione circa le implicazioni di sicurezza di iniziare supervisord senza la bandiera -c.
- Aggiungi un opzione di programma stopasgroup booleana, inadempiente false. Quando vero, il supervisore cause bandiera per inviare il segnale di arresto per l'intero gruppo di processi. Questo è utile per programmi, come Flask in modalità debug, che non si propagano i segnali di stop per i propri figli, lasciandoli orfani.
- Python 2.3 non è più supportato. L'ultima versione supportata di Python 2.3 è Supervisor 3.0a12.
- Rimosso il inutilizzato & quot; supervisor_rpc & quot; punto di ingresso da setup.py.
- Risolto un bug nel gestore log rotante che potrebbe causare risultati imprevisti quando due processi sono stati fissati per accedere allo stesso file. Patch per Whit Morriss.
- Risoluzione di un errore nel file di configurazione ricarico dove ogni ricarica potrebbe perdere la memoria perché un elenco di messaggi di avviso che venga aggiunta ma mai cancellato. Patch by Philip Zeyliger.
- Aggiunto un nuovo gestore di log Syslog. Grazie a Denis Bilenko, Nathan L. Smith e Jason R. Coombs, che ogni hanno contribuito alla patch.
- Mettere tutta la storia cambiamento in un unico file (changes.txt).
Cosa c'è di nuovo nella versione 3.0 Alpha 12:
- Rilasciato per sostituire un rotto pacchetto 3.0a11 dove non file -Python non sono stati inclusi nel pacchetto.
Cosa c'è di nuovo nella versione 3.0 Alpha 10:
- Risolto il foglio di stile dell'interfaccia web in modo che il footer Linea non si sovrapporrà un elenco lungo processo. Grazie a Derek DeVries per la patch.
- Consenti plugin interfaccia RPC per registrare nuovi tipi di eventi.
- Bug fix per fcgi prese non sempre pulito quando il comando reload viene emesso dal supervisorctl. Inoltre, il comportamento predefinito è cambiato per i socket fcgi. Sono nuovo chiuso quando il numero ofrunning processi in un gruppo raggiunge lo zero. In precedenza, le prese sono state tenute aperte a meno che è stato emesso un ordine di arresto a livello di gruppo.
- Better messaggio di errore quando il server HTTP non può invertire-risolvere un nome host in un indirizzo IP. Comportamento precedente: mostrare un errore di socket. Comportamento attuale:. Sputare fuori un suggerimento a stdout
- Le variabili d'ambiente impostate tramite ambiente = valore all'interno
- sezione [supervisord] non ha avuto effetto. Grazie a Wyatt Baldwin per una patch.
- Fix bug dove processo di arresto potrebbe provocare l'uscita di processo che è accaduto dopo la richiesta di arresto è stato emesso da perdere. Vedere https://github.com/Supervisor/supervisor/issues/11.
- cambiamento 2.X Spostato voci di log in HISTORY.txt.
- Convertito changes.txt e README.txt nella giusta ReStructuredText e incluso nel long_description in setup.py.
- Aggiunto un tox.ini al pacchetto (eseguito tramite tox nel pacchetto dir). Test supervisor su più versioni di Python.
Requisiti :
- Python
I commenti non trovato