È molto importante terminare i processi Linux in modo corretto per evitare che Linux si blocchi senza alcuna traccia nel file di registro di sistema. In breve, Linux riattacca senza indicare i motivi nel registro di sistema, quando il processo master (init, PID 1) viene sovraccaricato da troppi processi orfani in una volta sola.
Detto questo, un normale utente che ha accesso al tuo server Linux è in grado di uccidere facilmente il tuo server Linux in un minuto!
Come potremmo essere in grado di rilevare e scoprire un processo in fuga o un processo orfano? C'è una discussione sul processo orfano di zombie VS, i processi orfani sono identificati come:
processi non di sistema o processi dell'utente che hanno PPID (ID processo padre) pari a 1 (ID processo init), tramite un meccanismo noto come re-genitorialità.
Non ci sono molti processi di proprietà di init process. Apparentemente, la maggior parte dei processi di sistema in esecuzione dopo l'avvio del sistema hanno PPID 1.
Quindi, subito dopo l'avvio del sistema Linux, puoi eseguire questo comando:
ps -elf | head -1; ps -elf | awk '{if ($5 == 1) {print $0}}'
Il comando cattura tutti i processi con PPID 1. Mantieni quel risultato. Successivamente, è possibile eseguire periodicamente il comando per confrontare il risultato del tempo con l'istantanea scattata in precedenza. Eventuali differenze riscontrate nel nuovo snapshot potrebbero essere potenzialmente processi orfani.
Nota, le differenze riscontrate suggeriscono solo che sono potenziali (non confermati) processi orfani nel sistema Linux. Devi ottenere più informazioni per confermarle prima di terminare quei processi. Ad esempio, come calcola STIME, utilizzo della CPU, comprensione del suo scopo di esecuzione, ecc.
Dopo averli confermati, non dovresti esitare a terminarli il prima possibile, con il comando kill -9, poiché i processi orfani esauriranno le risorse del tuo sistema Linux nel tempo.