Comando Linux service

Linux 命令大全Guía completa de comandos Linux


¿Qué es el comando service?

serviceEs una herramienta de línea de comandos en el sistema Linux utilizada para gestionar servicios del sistema. Proporciona una forma estandarizada de iniciar, detener, reiniciar y verificar el estado de los servicios del sistema.

Los servicios son aplicaciones o procesos que se ejecutan en segundo plano y suelen proporcionar funciones críticas del sistema (como red, registros, bases de datos, etc.). Comprender el comando service es esencial para la administración de sistemas Linux.


Sintaxis básica del comando service

service [服务名] [操作指令]

Instrucciones de operación comunes

Instrucción Descripción de la función
start Inicia el servicio especificado
stop Detiene el servicio especificado
restart Reinicia el servicio especificado
reload Recarga el archivo de configuración (sin reiniciar el servicio)
status Ver el estado de ejecución del servicio
--status-all Listar el estado de todos los servicios

Explicación detallada de parámetros comunes

1. Operaciones básicas de gestión de servicios

Iniciar el servicio Apache:

Ejemplo

service apache2 start
# O usar el comando equivalente systemctl
systemctl start apache2

Detener el servicio MySQL:

Ejemplo

service mysql stop
# Recomendado en sistemas modernos
systemctl stop mysql

Reiniciar el servicio Nginx:

Ejemplo

service nginx restart
# Después de modificar el archivo de configuración, normalmente se necesita reiniciar para que surta efecto

Ver el estado del servicio SSH:

Ejemplo

service sshd status
# Ejemplo de salida:
# ● ssh.service - OpenBSD Secure Shell server
#    Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled)
#    Active: active (running) since Tue 2023-05-16 10:23:45 CST; 3h 25min ago

2. Uso avanzado

Recargar la configuración del servicio (sin interrumpir el servicio):

Ejemplo

service nginx reload
# Se usa cuando solo se ha modificado el archivo de configuración y no se necesita un reinicio completo

Listar el estado de todos los servicios:

Ejemplo

service --status-all
# [+] indica los servicios en ejecución
# [-] indica los servicios detenidos
# [?] indica los servicios con estado desconocido

Verificar si el servicio está configurado para iniciarse al arrancar:

Ejemplo

# Método antiguo
chkconfig --list | grep httpd
# En sistemas modernos se usa
systemctl is-enabled apache2

Ejemplos de aplicación práctica

Ejemplo 1: Gestión de servidores web

Ejemplo

# 1. Iniciar Apache
sudo service apache2 start

# 2. Recargar después de modificar el archivo de configuración
sudo nano /etc/apache2/apache2.conf
sudo service apache2 reload

# 3. Verificar el estado de ejecución
service apache2 status

Ejemplo 2: Mantenimiento de servicios de bases de datos

Ejemplo

# 1. Detener MySQL para realizar mantenimiento
sudo service mysql stop

# 2. Ejecutar operaciones de mantenimiento...

# 3. Reiniciar MySQL
sudo service mysql start

# 4. Verificar el estado del servicio
service mysql status

Explicación de las diferencias entre sistemas antiguos y nuevos

Con el desarrollo de los sistemas Linux, la forma de gestionar servicios ha cambiado:

Característica Sistemas tradicionales (SysVinit) Sistemas modernos (systemd)
Comando de gestión de servicios service systemctl
Ubicación del archivo de configuración /etc/init.d/ /lib/systemd/
Gestión de registros Archivos de registro dispersos journalctl
Inicio paralelo No compatible Compatible

Nota de compatibilidad:

  • En los sistemas modernos,serviceel comando suele sersystemctlun envoltorio de compatibilidad de
  • Se recomienda usar en sistemas nuevossystemctlpara obtener más funcionalidades

Resolución de problemas comunes

Problema 1: Fallo al iniciar el servicio

Ejemplo

sudo service mysql start
# Salida: Job for mysql.service failed because the control process exited with error code.

Solución:

  1. Ver la información detallada del error:
    journalctl -xe
  2. Revisar los archivos de registro:
    tail -n 50 /var/log/mysql/error.log
  3. Causas comunes: conflicto de puertos, problemas de permisos, errores en el archivo de configuración

Problema 2: El comando de servicio no existe

service: command not found

Solución:

  1. Confirmar si se encuentra en un entorno de instalación mínima
  2. Instalar los paquetes necesarios:
    # Debian/Ubuntu
    sudo apt install sysvinit-utils
       
    # RHEL/CentOS
    sudo yum install initscripts

Recomendaciones de mejores prácticas

  1. Usar la ruta completa: en entornos de producción se recomienda usar/usr/sbin/serviceen lugar de usar directamenteservice
  2. Combinar con systemctl: en sistemas modernos se prefiere usar el comandosystemctlcomando
  3. Añadir sudo: la gestión de servicios normalmente requiere permisos de root
  4. Revisión de registros: cuando un servicio falla, revise primero los registros relacionados
  5. Gestión de inicio automático:
    # 启用开机启动
    sudo systemctl enable nginx
       
    # 禁用开机启动
    sudo systemctl disable nginx

Ampliación de conocimientos

Comparación de comandos relacionados

Comando Uso Ejemplo
service Gestión de servicios compatible service sshd restart
systemctl Gestión de servicios moderna (recomendada) systemctl restart sshd
chkconfig Gestiona los niveles de ejecución de SysVinit chkconfig --list
update-rc.d Gestión de niveles de ejecución en sistemas Debian update-rc.d apache2 defaults

A través de este artículo, debería haber dominado el uso principal del comando service en sistemas Linux. Recuerde que, aunque el comando service es común en sistemas antiguos, en las distribuciones Linux modernas que usan systemd,systemctles la herramienta de gestión de servicios más recomendada. Se recomienda elegir el comando adecuado según el entorno de su sistema y adquirir el hábito de revisar los registros de servicios.

Linux 命令大全Guía completa de comandos Linux

Otras extensiones