GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo saber qué servicios se ejecutan al inicio en Raspberry Pi? (raspbian)

Supongo que tiene una Raspberry que usa raspian, que, según mi leal saber y entender, aún no se ha trasladado a systemd . En este caso, la respuesta es la siguiente.

EDITAR:para systemd (Jessie o posterior), ver en la parte inferior .

Primero, puede determinar qué sistema está actualmente ejecutándose mediante el comando:

  sudo service --status-all

Obtendrá una lista similar a esta:

  [ + ]  triggerhappy
  [ + ]  udev
  [ ? ]  udev-mtab
  [ ? ]  umountfs
  [ ? ]  umountnfs.sh
  [ ? ]  umountroot
  [ - ]  urandom
  [ + ]  vsftpd
  [ + ]  weewx
  [ - ]  x11-common

Los + indican servicios en ejecución, los -'s servicios no corriendo, los ?'s servicios que no permiten status como un posible comando:en su mayoría son comandos que no necesitan ejecutarse todo el tiempo, solo ocasionalmente.

Para volver a su pregunta, debe comprender runlevel s en Linux. Los niveles de ejecución (0-6 + S) identifican qué servicios pueden/deben ejecutarse. Una secuencia de arranque progresa desde un nivel de ejecución inicial (especificado en /etc/inittab , en mi frambuesa

 # The default runlevel.
 id:2:initdefault:

esta línea lo identifica como 2 y luego avanza al nivel de ejecución final estándar de su distribución (de 2 a 5). Identificas tu nivel de ejecución actual mediante el comando

 # runlevel
 N 2

(en mi caso, un servidor sin cabeza). Los otros niveles de ejecución son (nuevamente de é/etc/inittab*):

 # Runlevel 0 is halt.
 # Runlevel 1 is single-user.
 # Runlevels 2-5 are multi-user.
 # Runlevel 6 is reboot.

El usuario único (1) a menudo también se identifica como S.

En un inicio normal, comienza en 2 y progresa hasta 5. Para encontrar los servicios iniciados en esta progresión, emita el comando:

 # grep -nrI Default-Start /etc/init.d
 umountroot:7:# Default-Start:
 checkroot.sh:8:# Default-Start:     S
 kbd:6:# Default-Start:     S
 isc-dhcp-server:11:# Default-Start:     2 3 4 5
 mountkernfs.sh:7:# Default-Start:     S
 hostname.sh:7:# Default-Start:     S
 mountnfs.sh:7:# Default-Start:     S
 halt:6:# Default-Start:
 dphys-swapfile:20:# Default-Start:     2 3 4 5
 bootlogs:7:# Default-Start:     1 2 3 4 5
 rc.local:6:# Default-Start:     2 3 4 5
 hostapd:9:# Default-Start:      2 3 4 5
 keyboard-setup:8:# Default-Start:     S
 lightdm:7:# Default-Start:     2 3 4 5
 procps:11:# Default-Start:     S
 mysql:9:# Default-Start:     2 3 4 5
 single:6:# Default-Start:     1
 vsftpd:7:# Default-Start:       2 3 4 5
 samba:7:# Default-Start:     2 3 4 5
 mountall.sh:6:# Default-Start:     S
 weewx:20:# Default-Start:     2 3 4 5
 umountnfs.sh:7:# Default-Start:
 triggerhappy:6:# Default-Start:     2 3 4 5
 ifplugd:24:# Default-Start:     2 3 4 5
 alsa-utils:9:# Default-Start:     S
 bootmisc.sh:7:# Default-Start:     S
 sendsigs:6:# Default-Start:
 console-setup:7:# Default-Start:     S
 nfs-common:7:# Default-Start:     2 3 4 5 S
 checkroot-bootclean.sh:6:# Default-Start:     S
 rsyslog:7:# Default-Start:     2 3 4 5
 x11-common:7:# Default-Start:     S
 mountdevsubfs.sh:7:# Default-Start:     S
 cron:10:# Default-Start:     2 3 4 5
 mountnfs-bootclean.sh:6:# Default-Start:     S
 mountall-bootclean.sh:6:# Default-Start:     S
 screen-cleanup:11:# Default-Start:     S
 udev:6:# Default-Start:     S
 ssh:7:# Default-Start:  2 3 4 5
 haveged:8:# Default-Start:     2 3 4 5
 hwclock.sh:26:# Default-Start:     S
 plymouth:9:# Default-Start:     2 3 4 5
 motd:7:# Default-Start:     1 2 3 4 5
 killprocs:6:# Default-Start:     1
 networking:6:# Default-Start:     S
 fake-hwclock:9:# Default-Start:     S
 udev-mtab:6:# Default-Start:     S
 apache2:6:# Default-Start:     2 3 4 5
 reboot:6:# Default-Start:
 umountfs:6:# Default-Start:
 plymouth-log:9:# Default-Start: S
 openvpn:11:# Default-Start:     2 3 4 5
 kmod:8:# Default-Start:     S
 ntp:7:# Default-Start:   2 3 4 5
 rpcbind:9:# Default-Start:     S 2 3 4 5
 urandom:6:# Default-Start:     S
 rmnologin:6:# Default-Start:     2 3 4 5
 checkfs.sh:7:# Default-Start:     S
 sudo:8:# Default-Start:     2 3 4 5
 mtab.sh:6:# Default-Start:     S
 dbus:6:# Default-Start:     2 3 4 5
 rsync:8:# Default-Start:     2 3 4 5

Esto imprime la línea que comienza con Default-Start en todos los archivos en /etc/init.d/ , que es donde se guardan los ficheros que identifican los distintos servicios. La línea en cuestión identifica el nivel de ejecución donde se iniciará cada servicio. Si un servicio se inicia en el nivel de ejecución N, cuando el sistema avanza a N+1, no es necesario iniciarlo nuevamente, pero si no se ejecuta, se inicia.

Esto le da una idea exacta de las diferentes etapas en las que se inician los servicios. Pero dentro del mismo nivel de ejecución, las líneas Required-Start y Should-Start definen dependencias estrictas y blandas para el servicio en cuestión, es decir, servicios que deben ejecutar y debería se ejecuta antes del servicio que se está examinando. Sin los servicios de inicio requerido, el servicio en cuestión fallará, sin los servicios de inicio obligatorio, en cambio, no habrá una falla general, posiblemente solo la falta de algunas características útiles. Lo mismo ocurre en la parada con Parada requerida y Parada obligada.

SISTEMA :

El comando para listar todos los servicios es

systemctl list-unit-files

que escupirá mucha información. Para seleccionar todos los servicios habilitados , es decir , aquellos que se inician en el arranque, solo grep el comando anterior de la siguiente manera:

 systemctl list-unit-files | grep enabled 

Prefiero este comando a systemctl list-units :la diferencia es que este solo mostrará los servicios que su sistema operativo tiene en la memoria =el sistema operativo cree que necesita), mientras que systemctl list-unit-files mostrará todos servicios instalados, incluidos los que están enmascarados (es decir, aquellos que se supone que nunca deben iniciarse, ni siquiera manualmente), y aquellos que no activar, que se denominan static . En otras palabras, el comando que sugerí es más completo que el que enumera solo activo servicios.

NOTA :systemd es muy diferente de los sistemas de inicio anteriores. En particular, no tiene niveles de ejecución , pero objetivos . niveles de ejecución todavía existen por razones de compatibilidad, y se pueden ver como objetivos específicos enumerando todos los objetivos disponibles a través de

systemctl list-unit-files --type=target

mientras que puedes ver tu objetivo actual por medio de

$ systemctl get-default
  graphical.target

Para obtener más información sobre esto, puede leer la excelente página introductoria de DigitalOcean.


Para una gestión sencilla del servicio de inicio en Raspberry Pi, recomiendo la herramienta rcconf . Le permite activar/desactivar servicios fácilmente en /etc/init.d/ . También puede ver si están habilitados y se ejecutarán al inicio.

Para instalar la herramienta

sudo apt-get install rcconf

Y es muy fácil de usar con la interfaz de usuario de texto

sudo rcconf

sudo nano /etc/rc.local

Aquí es donde inserta el archivo por lotes o los comandos para ejecutar en el arranque. Ejecuto automáticamente Openvpn en el arranque también :)


Linux
  1. ¿Cómo ejecutar un comando que sobrevivirá al cierre de la terminal?

  2. ¿Cómo saber qué disco es Sda y cuál es Sdb?

  3. ¿Cómo decirle a Cron que ejecute un comando cada dos días (par/impar)?

  4. Cómo ejecutar un script de shell al inicio

  5. ¿Cómo puedo saber con qué límite de usuarios me estoy encontrando?

Cómo enumerar los servicios de inicio en el arranque en Linux

Cómo ejecutar pods como servicios systemd con Podman

Cómo instalar el sistema operativo Raspbian en Raspberry Pi

Cómo instalar el sistema operativo Raspbian de Raspberry Pi con Pixel Desktop en cualquier computadora

Cómo ejecutar un script Bash

¿Cómo decirle a Xargs qué argumento elegir?