Supongo que tiene una Raspberry usando raspian, que, que yo sepa, aún no se ha movido 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 se está ejecutando actualmente mediante el comando:
sudo service --status-all
Obtendrá una lista algo así:
[ + ] triggerhappy
[ + ] udev
[ ? ] udev-mtab
[ ? ] umountfs
[ ? ] umountnfs.sh
[ ? ] umountroot
[ - ] urandom
[ + ] vsftpd
[ + ] weewx
[ - ] x11-common
Los + 's indican los servicios en funcionamiento, el -'s servicios de no correr, los ?' S servicios que no permiten el estado como un posible comando: en su mayoría son comandos que no tienen que correr todo el tiempo, sólo de vez en cuando.
Para volver a su pregunta, debe comprender los niveles de ejecución 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 Raspberry
# The default runlevel.
id:2:initdefault:
esta línea lo identifica como 2 y luego avanza a su nivel de ejecución final estándar de distribución (de 2 a 5). Identifica su 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 desde é / 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 arranque 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 archivos que identifican los diversos servicios. La línea en cuestión identifica el nivel de ejecución donde se iniciará cada servicio. Si se inicia un servicio en el nivel de ejecución N, cuando el sistema avanza a N + 1, no necesita iniciarse nuevamente, pero si se encuentra que no se está ejecutando, se inicia.
Esto le da una idea exacta de las diferentes etapas en que se inician los servicios. Pero dentro del mismo nivel de ejecución, las líneas Required-Start y should-Start definen dependencias duras y suaves para el servicio en cuestión, es decir , servicios que deben ejecutarse y deben ejecutarse antes de que el servicio sea examinado. Sin los servicios de arranque obligatorio, el servicio en cuestión fallará, sin los servicios de arranque debería, en cambio, no habrá una falla general, posiblemente solo la falta de algunas características útiles. Lo mismo ocurre en la parada con Required-Stop y Should-Stop.
SYSTEMD :
El comando para enumerar 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, simplemente siga 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 memoria = el sistema operativo cree que necesita), mientras que systemctl list-unit-files mostrará todos los servicios instalados, incluidos los que están enmascarado ( es decir, los que se supone que nunca se inició, ni siquiera de forma manual), y los que se no se activará, que se llama estática . En otras palabras, el comando que sugerí es más completo que el que enumera solo los servicios activos .
NB : systemd es muy diferente de los sistemas init anteriores. En particular, no tiene niveles de ejecución , sino objetivos . los niveles de ejecución todavía existen por razones de compatibilidad, y pueden verse como objetivos específicos al enumerar todos los objetivos disponibles a través de
systemctl list-unit-files --type=target
mientras puede ver su objetivo actual por medio de
$ systemctl get-default
graphical.target
Para más información sobre esto, puede leer la excelente página introductoria de DigitalOcean .
systemd
, pero esta respuesta todavía parece funcionar.Para una simple gestión del servicio de inicio en Raspberry Pi, recomiendo la herramienta
rcconf
. Le permite activar / desactivar fácilmente los servicios/etc/init.d/
. También puede ver si están habilitados y se ejecutarán al inicio.Para instalar la herramienta
Y es muy simple usarlo con la interfaz de usuario de texto
fuente
rcconf
te dice si un servicio está habilitado o no. Edité la respuesta para decir explícitamente que la herramienta muestra este tipo particular de información.Aquí es donde inserta el archivo por lotes o los comandos para ejecutar en el arranque. Yo también ejecuto Openvpn en el arranque también :)
fuente