Come assicurare che sshd sia l'ultimo servizio da interrompere durante l'arresto?

Ho notato che quando rilevo un command di reboot , la mia connessione SSH viene immediatamente chiusa su CentOS 7. Non significa che il server sia stato riavviato, come posso ancora eseguire il ping.

Sembra che systemd sta uccidendo sshd troppo presto. A volte un servizio si blocca o è solo lento e non riesco più a controllare ciò che è sbagliato anche se il server è in su.

C'è un modo per dire a systemd di uccidere solo sshd dopo che tutti gli altri servizi sono in discesa?

  • Perché Debian Jessie systemd ricarica il mio server Apache each mattina?
  • Come fare il routing di policy con systemd?
  • Perché il mio pianificatore CUPS viene ripetutamente ripetuto?
  • Il process uwsgi avviato da systemd si chiude dopo un po '
  • Configurazione del servizio Systemd per l'esecuzione con accesso root
  • l'operazione di avviamento nagios.service è terminata. Terminare
  • Come può il systemd eseguire un command come root prima di lanciare un servizio come utente diverso?
  • systemd ExecStartPost non sembra essere chiamato
  • 3 Solutions collect form web for “Come assicurare che sshd sia l'ultimo servizio da interrompere durante l'arresto?”

    Anche se è ansible garantire che SSH sia l'ultimo servizio da interrompere, sarebbe inutile, perché si perde la connessione non appena i servizi di networking vengono arrestati.

    Una macchina Linux che inizia l'avvio di tutti i servizi in un ordine prefissato: in primo luogo i servizi più importnti, il syslog, il firewall, la networking e infine le applicazioni che richiedono l'accesso alla networking (server web, server SSH, ecc.). Quando si spengono, questi servizi vengono arrestati in ordine inverso. Quindi perderai immediatamente la connessione SSH.

    Il fatto che SSH è già in discesa mentre è ancora ansible pingare la macchina remota è normale.

    Questo è un po 'un hack, ma che dire di aggiungere qualcosa di simile:

     ExecStopPre=sleep 60 

    alla sezione "[Servizio]" di /usr/lib/systemd/system/sshd.service ? Ciò non garantisce l'ordinazione degli arresti, ma se potresti tollerare un tempo di arresto più lungo, potrebbe consentire di mantenere la shell a lungo triggers per verificare che tutto il resto sia terminato o per fare qualche rapida scossa. Non è sicuro se questo sia utile nel caso generale, perché probabilmente è troppo tardi per interrompere un arresto problematico in questa fase comunque, ma potrebbe essere utile in una situazione in cui si è verificato un problema ricorrente durante l'arresto che si sta tentando di eseguire il debug.

    Non sono sicuro di quello che stai qui, ma la prima cosa che si pensa è di rifare il process.

    Quindi nel tuo caso è ansible ripristinare il process principale di sshd:

      renice PRIO_MAX -p pid-of-sshd 
    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.