De forma predeterminada, algunos servicios importantes del sistema se inician automáticamente cuando se inicia el sistema. Por ejemplo, los servicios NetworkManager y Firewalld se iniciarán automáticamente al iniciar el sistema. Los servicios de inicio también se conocen como demonios en sistemas operativos Linux y similares a Unix. Seguirán ejecutándose en segundo plano y harán su trabajo sin la intervención del usuario. Además de los servicios del sistema, algunas otras aplicaciones de terceros también se agregarán al inicio. En esta breve guía, veamos cómo encontrar y enumerar los servicios de inicio en el momento del arranque en sistemas Linux y similares a Unix.
Lista de servicios de inicio al arrancar en Linux
Encontrar la lista de servicios de inicio diferirá según el init
sistema. Systemd es el sistema de inicio predeterminado para las principales versiones más nuevas de las distribuciones de Linux.
Si sus sistemas se ejecutan con systemd
administrador del sistema, puede enumerar todos los servicios con el siguiente comando:
$ sudo systemctl list-unit-files --type=service
Salida de muestra:
UNIT FILE STATE VENDOR PRESET
accounts-daemon.service enabled enabled
acpid.service disabled enabled
alsa-restore.service static enabled
alsa-state.service static enabled
alsa-utils.service masked enabled
anacron.service enabled enabled
apparmor.service enabled enabled
apport-autoreport.service static enabled
[email protected] static enabled
apport.service generated enabled
.
.
.
[email protected] static enabled
whoopsie.service disabled enabled
[email protected] disabled enabled
[email protected] disabled enabled
wpa_supplicant.service enabled enabled
[email protected] disabled enabled
x11-common.service masked enabled
[email protected] static enabled
xfs_scrub_all.service static enabled
[email protected] static enabled
265 unit files listed.
Como se indicó anteriormente, este comando muestra la lista de todos los servicios (tanto habilitados como deshabilitados en el arranque del sistema) en su sistema Linux. Puede verificarlo mirando en la sección ESTADO en el resultado anterior. Los servicios que se inician en el arranque se marcan como habilitados , y los servicios que no se inician se marcan como inhabilitados .
Para enumerar solo los servicios habilitados en el arranque del sistema, ejecute:
$ sudo systemctl list-unit-files --type=service --state=enabled --all
Salida de muestra:
UNIT FILE STATE VENDOR PRESET
accounts-daemon.service enabled enabled
anacron.service enabled enabled
apparmor.service enabled enabled
[email protected] enabled enabled
avahi-daemon.service enabled enabled
.
.
.
udisks2.service enabled enabled
ufw.service enabled enabled
unattended-upgrades.service enabled enabled
vboxweb.service enabled enabled
wpa_supplicant.service enabled enabled
74 unit files listed.
Para listar todos los deshabilitados servicios en el arranque del sistema, ejecute:
$ sudo systemctl list-unit-files --type=service --state=disabled --all
Como ya dije, algunas distribuciones antiguas de Linux pueden usar SysV o advenedizo como su sistema de inicio predeterminado.
Si su sistema usa sysv
, ejecute el siguiente comando para enumerar todos los servicios:
$ sudo service --status-all
Salida de muestra:
[ + ] acpid
[ - ] alsa-utils
[ - ] anacron
[ + ] apparmor
[ + ] apport
[ + ] avahi-daemon
[ + ] bluetooth
[ - ] console-setup.sh
[ + ] cron
[ - ] cryptdisks
[ - ] cryptdisks-early
[ + ] cups
[ + ] cups-browsed
[ + ] dbus
[ - ] dns-clean
[ + ] dnsmasq
[ + ] exim4
[ + ] gdm3
[ + ] grub-common
[ + ] hddtemp
[ - ] hwclock.sh
[ + ] irqbalance
[ + ] kerneloops
[ - ] keyboard-setup.sh
[ + ] kmod
[ + ] lm-sensors
[ - ] lvm2
[ - ] lvm2-lvmpolld
[ + ] network-manager
[ + ] networking
[ + ] openvpn
[ - ] plymouth
[ - ] plymouth-log
[ - ] pppd-dns
[ + ] procps
[ - ] pulseaudio-enable-autospawn
[ - ] rsync
[ + ] rsyslog
[ - ] saned
[ - ] screen-cleanup
[ + ] smartmontools
[ - ] speech-dispatcher
[ - ] spice-vdagent
[ + ] sysstat
[ + ] udev
[ + ] ufw
[ + ] unattended-upgrades
[ - ] uuidd
[ + ] virtualbox
[ - ] whoopsie
[ - ] x11-common
Aquí, el +
indica que el servicio se está ejecutando y -
indica un servicio detenido. Si ve ?
en la salida, el estado del servicio no se puede determinar (por alguna razón).
Para enumerar todos los servicios que están habilitados en el arranque, ejecute:
$ sudo chkconfig --list
Este comando enumerará el estado de cada servicio en cada nivel de ejecución . Una salida de muestra del comando anterior será:
acpid 0:off 1:off 2:on 3:on 4:on 5:on 6:off
anamon 0:off 1:off 2:off 3:off 4:off 5:off 6:off
atd 0:off 1:off 2:off 3:on 4:on 5:on 6:off
[...]
En el comando anterior, "on" significa que el servicio se inicia en el arranque.
También puede ver el estado de un servicio específico en un nivel de ejecución diferente, como se muestra a continuación:
$ sudo chkconfig --list httpd
Si su sistema Linux usa upstart
, ejecute este comando para enumerar todos los servicios de inicio:
$ sudo initctl list
El comando anterior mostrará todas las sesiones trabajos.
Si desea mostrar todo el Sistema trabajos, ejecute:
$ sudo initctl --system list
Para enumerar todos los servicios y mostrar sus estados en cada nivel de ejecución, ejecute:
$ sudo initctl list | awk '{ print $1 }' | xargs -n1 initctl show-config
Para mostrar el estado de un servicio específico, ejecute este comando:
$ initctl show-config <service_name>
Deshabilitar los servicios de inicio en Linux
Cuantas más aplicaciones instale en su computadora, más tardará su sistema en arrancar. Para mejorar el tiempo de arranque de su sistema Linux, necesita encontrar los servicios innecesarios y deshabilitarlos.
Digamos, por ejemplo, si no desea un servicio llamado unattended-upgrades.service
para cargar al inicio, puede deshabilitarlo usando el comando:
$ sudo systemctl disable --now unattended-upgrades.service
Para saber si un servicio está habilitado en el momento del arranque, ejecute:
$ sudo systemctl is-enabled <service-name>
Lectura relacionada:
- Cómo mejorar el tiempo de inicio de la aplicación en Linux