GNU/Linux >> Linux Esercitazione >  >> Linux

Controlla i servizi in esecuzione su Linux

Quando è necessario risolvere un problema relativo a un servizio di rete, il primo passaggio consiste nell'assicurarsi che il servizio sia in esecuzione.

Se il servizio ha uno script di inizializzazione (init) installato, puoi usare il service comando per avviare, arrestare e controllare lo stato del servizio. Questo comando fa riferimento a un servizio utilizzando il suo script init, che è memorizzato in /etc/init.d directory per le distribuzioni basate su Debian® e il etc/rc.d/init.d directory per le distribuzioni basate su Red Hat®.

Se non si conosce il nome utilizzato dal sistema per un servizio, controllare una delle directory precedenti utilizzando ls comando seguito dal nome della directory. Alcuni nomi variano a seconda della distribuzione. Ad esempio, Apache® è httpd su CentOS® e apache2 sul sistema operativo Ubuntu®.

Nota :Molte nuove distribuzioni Linux® utilizzano systemd invece di netstat per controllare i servizi. Se stai usando systemd , sostituisci tuttoservice <service-name> <status> comandi con systemct1 <status> <service-name> .Per ulteriori informazioni su systemct1 comandi, vedere Fedora™SysVinit to Systemd Cheatsheet.

Controlla lo stato del servizio

Un servizio può avere uno dei seguenti stati:

  • start :Il servizio è stato avviato.
  • stop :Il servizio ha smesso di funzionare.
  • restart :il servizio si sta riavviando e si avvierà al termine del processo.

L'esempio seguente mostra come controllare lo stato di httpd su CentOSby usando il service comando:

$ sudo service httpd status
httpd is stopped

Avvia il servizio

Se un servizio non è in esecuzione, puoi utilizzare il service comando per avviarlo. L'esempio seguente avvia httpd servizio:

$ sudo service httpd start
Starting httpd:                                            [  OK  ]

Se l'applicazione non può essere avviata, il sistema segnala l'errore e di solito visualizza un messaggio che indica la causa del problema.

$ sudo service httpd start
Starting httpd: (98)Address already in use: make_sock: could not bind to address [::]:80
(98)Address already in use: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
Unable to open logs
[FAILED]

Utilizza netstat per trovare i conflitti di porta

Nell'esempio precedente, httpd non può essere avviato perché qualcosa è già in ascolto sulla porta. Per scoprire cosa sta ascoltando, puoi eseguire netstat comando.

Esegui il comando seguente per visualizzare un elenco di programmi in ascolto e le porte che stanno utilizzando:

# netstat -plnt
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name
tcp        0      0 10.176.77.113:3306          0.0.0.0:*                   LISTEN      28509/mysqld
tcp        0      0 0.0.0.0:80                  0.0.0.0:*                   LISTEN      2113/nc
tcp        0      0 127.0.0.1:25                0.0.0.0:*                   LISTEN      1115/master
tcp        0      0 :::22                       :::*                        LISTEN      1051/sshd

L'output mostra che nc programma (che appare in Program name colonna) è in ascolto sulla porta 80 (che appare in Local Address colonna). L'arresto di questo programma dovrebbe abilitare httpd da avviare.

Nota :Per ulteriori informazioni su netstat comando, vedi Verifica porte in ascolto con netstat.

Controlla lo stato di xinetd

Se il servizio non è in esecuzione, potrebbe essere dovuto a un super server come un Extended Internet Service Daemon (xinetd ) viene utilizzato per avviare il programma quando viene ricevuta una connessione. In questo caso, l'avvio del servizio potrebbe aver risolto il problema. Esegui il comando seguente per verificare che il problema sia stato risolto:

$ sudo service xinetd status
xinetd (pid  8795) is running...

Controlla i registri

Se non riesci ad avviare il servizio, controlla i tuoi log per vedere se contengono informazioni sul problema.

Passaggi successivi

Dopo esserti assicurato che l'applicazione sia in esecuzione, controlla le risorse del server per verificare quanto sta consumando la tua applicazione.


Linux
  1. Controlla quale servizio è in ascolto su una determinata porta Linux

  2. Servizio del sistema operativo Linux 'dhcpd'

  3. Servizio del sistema operativo Linux "anacron"

  4. Servizio del sistema operativo Linux "iptables"

  5. Sistema operativo Linux Servizio "rete"

Elenco dei servizi Linux con Systemctl

Come controllare tutti i servizi in esecuzione in Linux

Come elencare i servizi Systemd in Linux

Servizio del sistema operativo Linux "xendomains"

Servizio del sistema operativo Linux 'nscd'

Come verificare se un particolare servizio è in esecuzione su Ubuntu