2015-03-10 18 views
6

Sul mio server uso elasticSearch che scende regolarmente e il risultato è un errore di 500 per i miei utenti.come utilizzare systemD per riavviare un servizio quando inattivo?

Ho capito che systemD era ora il riferimento per la gestione dei servizi. Per me va bene.

Come posso utilizzare systemD per riavviare automaticamente il servizio di ricerca elastica quando si interrompe? Ho trovato dei modi per riavviarlo ma non automaticamente, senza che io controllassi se è giù.

risposta

8

Se si utilizza il file di servizi systemd per avviare il servizio quindi aggiungere di seguito le linee nel file di servizio da dove si sta guardando il vostro servizio

[Service] 
Type=simple 
ExecStart=here will be your service executable name 
Restart=always  
RestartSec=0 
  • Restart=

    Configura se il servizio deve essere riavviato quando il processo di servizio termina, viene ucciso o viene raggiunto un timeout. Prende uno dei no, on-success, on-failure, on-anormale, on-watchdog, on-abort o sempre. Se impostato su no (il valore predefinito)

  • RestartSec=

    Configura il tempo di dormire prima di riavviare un servizio (come configurato con Restart=). Prende un valore unitario-less in secondi

Queste due opzioni devono essere sotto il tag [Service] in un file di servizio.

+0

puoi deliziarti su come farlo quando inizi da zero? using apt-get install system-sysv mi ottiene un "pacchetto" systemd-sysv "non ha candidati all'installazione" –

+0

Iniziare da zero - non capisco ... Linux viene fornito con un componente di framework di sistema chiamato systemD. Il kernel inizia questo e una volta che systemD è attivo, avvia tutti i servizi all'avvio di un dispositivo. SystemD è una sostituzione di System V init. è systemD disponibile nella piattaforma Linux. Se sì, questo è solo un numero limitato di cambi di riga nel file di servizio per farlo funzionare. – PAL

+0

bello, potrei fare quel lavoro. Avevo bisogno di passare da Linux 14.04 a 14.10 e quindi la maggior parte dei servizi utili hanno già il loro file di unità in /run/systemd/generator.late –

0

Ho usato il monit monit per questo. A post at askfedoraproject mi suggerisce che questo è ancora un buon modo per monitorare i processi e riavviarli automaticamente.

Fornisce una buona configurazione granulare delle funzioni di monitoraggio, come decidere se un processo è fallito e le azioni da intraprendere per recuperarlo.

0

systemctl - Sistema e responsabile di servizio per i sistemi Linux

Nozioni di base circa systemd: Caratteristiche: 1.Parallel avvio del servizio di sistema in fase di avvio 2.On richiesta l'attivazione del controllo demoni servizio basato 3.Dependecy logica

* limited support at runlevel 
* panic is not support panic command(systemctl no custom commands) 
* systemctl can only communicate with services which are started by systemd 
* sysd stop only running services 
* system services don't inherit any context like HOME or PATH variable 
* All services subject to default timeout of 5 minutes can be configured.These prevents from system to freeze in case of some application stop to respond. 

unità systemd: servizio, percorso, montare, snapshot, di swap, timer, dispositivi ecc unità Tipo File Extension Descrizione Service unit .service Un servizio di sistema. Unità target .target Un gruppo di unità systemd. Unità di montaggio automatico .automount Un punto di montaggio automatico del file system. Dispositivo unità . Dispositivo Un file di dispositivo riconosciuto dal kernel. Unità di montaggio .mount Un punto di montaggio del file system. Unità di percorso .path Un file o una directory in un file system. Unità di portata .scope Un processo creato esternamente. Unità fetta .slice Un gruppo di unità organizzate gerarchicamente che gestiscono i processi di sistema. Unità istantanea .snapshot Uno stato salvato del gestore di sistema. Unità presa .socket Una presa di comunicazione tra processi. Unità di scambio .swap Un dispositivo di scambio o un file di scambio. Unità timer .timer Un timer di sistema. Filelocation

del file unità:/etc/systemd/system

file di configurazione: /etc/systemd/system.conf

Systemd fornisce un sacco di functionallity fondamentalmente è possibile controllare tutte le resouces del sistema Linux che ti dà un sacco di funzionalità. Ci stiamo concentrando sulla gestione del servizio di sistema in questo articolo.

per maggiori dettagli: https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/system_administrators_guide/chap-managing_services_with_systemd

SISTEMA GESTIONE SERVIZI: systemctl Descrizione systemctl iniziare name.service Avvia un servizio. systemctl stop name.service Arresta un servizio. systemctl restart name.service Riavvia un servizio. systemctl try-restart name.service Riavvia un servizio solo se è in esecuzione. systemctl reload name.service Ricarica la configurazione. systemctl status name.service systemctl is-active name.service Controlla se un servizio è in esecuzione. systemctl list-units --type service --all Visualizza lo stato di tutti i servizi. systemctl Descrizione systemctl enable name.service Abilita un servizio. systemctl disable name.service Disabilita un servizio. systemctl status name.service systemctl is-enabled name.service Controlla se un servizio è abilitato. systemctl list-unit-files - type service Elenca tutti i servizi e controlla se sono abilitati. dipendenze elenco di systemctl - dopo Elenca i servizi che sono ordinati per l'avvio prima dell'unità specificata. dipendenze elenco di systemctl --beuse Elenca i servizi che sono ordinati per l'avvio dopo l'unità specificata.

Problemi correlati