El comando service en Linux permite enviar acciones a servicios del sistema, como consultar su estado, iniciarlos, detenerlos o reiniciarlos. Se encuentra sobre todo en distribuciones Debian y Ubuntu, donde sirve como interfaz compatible para gestionar scripts de inicio y, según la distribución, unidades de systemd.
La disponibilidad y el comportamiento concreto dependen de la distribución y del servicio instalado. En sistemas que usan systemd, systemctl es la herramienta de referencia para administrar unidades nativas; service resulta útil cuando se sigue una guía compatible con sistemas SysV o se trabaja con servicios que ofrecen ese envoltorio.
En esta guía verás la sintaxis real de service, qué hace cada argumento, cómo consultar e iniciar un servicio y qué diferencias debes tener en cuenta antes de usarlo.
👉 Y recuerda, si quieres aprender más de Linux, visita el curso de Linux gratis.
👉 También puedes consultar la guía de comandos Linux por categorías.
Sintaxis básica del comando service
La forma general documentada para esta herramienta es:
service SCRIPT COMMAND [OPTIONS]Explicación de la sintaxis
- SCRIPT: el nombre del servicio o del script de inicio que se quiere administrar, por ejemplo nginx si está instalado y dispone de una unidad o script compatible.
- COMMAND: la acción que admite ese servicio, como status, start, stop, restart o reload. No todos los servicios admiten todas las acciones.
- OPTIONS: argumentos opcionales que el script puede aceptar. La herramienta no define una lista universal de opciones para todos los servicios.
Por ejemplo, service nginx status solicita el estado del servicio nginx. El comando no instala nginx ni crea una unidad: el servicio debe existir en el sistema y su nombre debe coincidir con el configurado en esa distribución.
Acciones habituales de service
La siguiente tabla resume acciones frecuentes. Para las acciones que modifican el estado del sistema, quizá necesites permisos de administrador mediante sudo.
| Comando | Qué hace | Cuándo utilizarlo |
|---|---|---|
| service --status-all | Solicita el estado de los scripts de servicio que reconoce la implementación local. | Para obtener una vista general en distribuciones compatibles; no es un inventario universal de todas las unidades systemd. |
| service nginx status | Consulta el estado de nginx. | Para comprobar si el servicio está activo antes de investigar un problema. |
| sudo service nginx start | Inicia nginx. | Cuando está instalado y quieres ponerlo en marcha. |
| sudo service nginx stop | Detiene nginx. | Cuando necesitas pararlo temporalmente o hacer mantenimiento. |
| sudo service nginx restart | Detiene e inicia de nuevo nginx. | Después de un cambio que requiere reiniciar el servicio; puede interrumpir conexiones. |
| sudo service nginx reload | Pide a nginx que vuelva a cargar su configuración, si admite esta acción. | Para aplicar cambios evitando un reinicio completo cuando el servicio lo permite. |
| systemctl status nginx | Consulta directamente una unidad de systemd. | En sistemas con systemd, para inspeccionar una unidad nativa y ver su estado detallado. |
Cómo consultar el estado de un servicio
Antes de cambiar nada, consulta el servicio. Así puedes distinguir si está activo, detenido o si el sistema no reconoce el nombre indicado:
service nginx statusSi la respuesta indica que no se encuentra el servicio, comprueba primero que el paquete está instalado y confirma el nombre de su unidad. En una distribución con systemd, esta consulta ofrece información más completa:
systemctl status nginxCómo iniciar, detener o reiniciar un servicio
Las acciones de inicio y parada cambian el estado del servicio y normalmente requieren permisos administrativos. Sustituye nginx por el nombre real de la unidad que tengas instalada:
sudo service nginx start
sudo service nginx stop
sudo service nginx restartUsa restart solo cuando necesites detener e iniciar de nuevo el proceso. Si el servicio admite reload, esa acción puede aplicar la configuración con menos interrupción. Consulta la documentación del servicio antes de usarla en producción.
Diferencias entre service y systemctl
service conserva una interfaz sencilla y compatible con scripts de inicio tradicionales. En algunas versiones de Debian y Ubuntu puede derivar acciones hacia systemd; en otros entornos puede comunicarse con scripts SysV. Por eso, su salida y la lista de servicios disponibles varían según el sistema.
systemctl administra directamente las unidades de systemd y permite consultar más detalles, dependencias y registros. Si tu sistema usa systemd y necesitas diagnosticar una unidad, empieza por systemctl. Usa service cuando una guía, un script heredado o tu distribución lo requiera.
Preguntas frecuentes sobre service
¿service --status-all muestra todos los servicios?
No necesariamente. En Ubuntu, la opción recorre los scripts de inicio compatibles y consulta el estado cuando estos ofrecen esa acción; no debe interpretarse como un listado completo de cada unidad nativa de systemd. Para revisar una unidad concreta, consulta systemctl status seguido de su nombre.
¿Por qué service no encuentra un servicio?
Puede que el paquete no esté instalado, que el servicio tenga otro nombre o que la distribución lo gestione como una unidad sin un script compatible. Verifica el nombre de la unidad y, si el sistema usa systemd, búscala y consúltala con systemctl.
La referencia de Ubuntu documenta la sintaxis y el alcance de esta implementación de service; otras distribuciones pueden ofrecer un comportamiento distinto.
Ejemplo en video
Para complementar esta guía, hemos preparado un video donde se muestra paso a paso cómo usar el comando service en Linux.
De este modo, podrás ver de forma práctica algunos de los ejemplos explicados en el artículo:
