Comando Linux service
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
# O usar el comando equivalente systemctl
systemctl start apache2
Detener el servicio MySQL:
Ejemplo
# Recomendado en sistemas modernos
systemctl stop mysql
Reiniciar el servicio Nginx:
Ejemplo
# Después de modificar el archivo de configuración, normalmente se necesita reiniciar para que surta efecto
Ver el estado del servicio SSH:
Ejemplo
# 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
# 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
# [+] 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
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
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
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 nuevos
systemctlpara obtener más funcionalidades
Resolución de problemas comunes
Problema 1: Fallo al iniciar el servicio
Ejemplo
# Salida: Job for mysql.service failed because the control process exited with error code.
Solución:
- Ver la información detallada del error:
journalctl -xe
- Revisar los archivos de registro:
tail -n 50 /var/log/mysql/error.log
- 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:
- Confirmar si se encuentra en un entorno de instalación mínima
- Instalar los paquetes necesarios:
# Debian/Ubuntu sudo apt install sysvinit-utils # RHEL/CentOS sudo yum install initscripts
Recomendaciones de mejores prácticas
- Usar la ruta completa: en entornos de producción se recomienda usar
/usr/sbin/serviceen lugar de usar directamenteservice - Combinar con systemctl: en sistemas modernos se prefiere usar el comando
systemctlcomando - Añadir sudo: la gestión de servicios normalmente requiere permisos de root
- Revisión de registros: cuando un servicio falla, revise primero los registros relacionados
- 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.