GNU/Linux >> Tutoriales Linux >  >> Linux

Comprobar los servicios en ejecución en Linux

Cuando necesite solucionar problemas de un servicio de red, el primer paso es asegurarse de que el servicio se esté ejecutando.

Si el servicio tiene instalado un script de inicialización (init), puede usar el service Comando para iniciar, detener y comprobar el estado del servicio. Este comando hace referencia a un servicio utilizando su secuencia de comandos de inicio, que se almacena en el /etc/init.d directorio para distribuciones basadas en Debian® y el etc/rc.d/init.d directorio para distribuciones basadas en Red Hat®.

Si no sabe el nombre que usa el sistema para un servicio, verifique cualquiera de los directorios anteriores usando el ls comando seguido del nombre del directorio. Algunos nombres varían dependiendo de su distribución. Por ejemplo, Apache® es httpd en CentOS® y apache2 en el sistema operativo Ubuntu®.

Nota :Muchas distribuciones de Linux® más nuevas usan systemd en lugar de netstat para comprobar los servicios. Si está utilizando systemd , reemplace allservice <service-name> <status> comandos con systemct1 <status> <service-name> .Para más información sobre systemct1 comandos, consulte Fedora™SysVinit to Systemd Cheatsheet.

Consulte el estado del servicio

Un servicio puede tener cualquiera de los siguientes estados:

  • start :El servicio ha comenzado.
  • stop :El servicio ha dejado de ejecutarse.
  • restart :El servicio se está reiniciando y comenzará después de que se complete el proceso.

El siguiente ejemplo muestra cómo verificar el estado de httpd en CentOS mediante el service comando:

$ sudo service httpd status
httpd is stopped

Iniciar el servicio

Si un servicio no se está ejecutando, puede usar el service Comando para iniciarlo. El siguiente ejemplo inicia el httpd servicio:

$ sudo service httpd start
Starting httpd:                                            [  OK  ]

Si la aplicación no se puede iniciar, el sistema informa la falla y generalmente muestra un mensaje que 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]

Utilice netstat para encontrar conflictos de puertos

En el ejemplo anterior, httpd no se puede iniciar porque algo ya está escuchando en el puerto. Para averiguar qué está escuchando, puede ejecutar netstat comando.

Ejecute el siguiente comando para mostrar una lista de programas de escucha y los puertos que están usando:

# 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

El resultado muestra que nc programa (que aparece en el Program name columna) está escuchando en el puerto 80 (que aparece en la Local Address columna). Detener este programa debería habilitar httpd para ser iniciado.

Nota :Para más información sobre netstat comando, consulte Comprobar puertos de escucha con netstat.

Consultar estado de xinetd

Si el servicio no se está ejecutando, es posible que se deba a que un superservidor, como un demonio de servicio de Internet extendido (xinetd ) se utiliza para iniciar el programa cuando se recibe una conexión. Si este es el caso, iniciar el servicio podría haber resuelto el problema. Ejecute el siguiente comando para verificar que se resuelva el problema:

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

Comprobar registros

Si no puede iniciar su servicio, revise sus registros para ver si contienen información sobre el problema.

Pasos siguientes

Una vez que esté seguro de que la aplicación se está ejecutando, verifique los recursos del servidor para verificar cuánto consume su aplicación.


Linux
  1. Verifique qué servicio está escuchando en un puerto Linux dado

  2. Servicio del sistema operativo Linux 'anacron'

  3. Servicio del sistema operativo Linux 'iptables'

  4. Servicio de sistema operativo Linux 'red'

  5. Servicio de sistema operativo Linux 'mapa de puertos'

Listado de servicios de Linux con Systemctl

Cómo verificar todos los servicios en ejecución en Linux

Servicio del sistema operativo Linux 'yppasswdd'

Servicio de sistema operativo Linux 'xendomains'

Servicio del sistema operativo Linux 'nscd'

Cómo verificar si un servicio en particular se está ejecutando en Ubuntu