Estoy asumiendo que tienes una Raspberry que utiliza raspian, que, hasta donde yo sé, aún no ha pasado a systemd. En este caso, la respuesta es la siguiente.
EDIT: para systemd (Jessie o posterior), ver al final.
En primer lugar, puede determinar qué sistema está actualmente en ejecución mediante el comando
sudo service --status-all
Obtendrá una lista más o menos así
[+] triggerhappy
[+] udev
[?] udev-mtab
[?] umountfs
[?] umountnfs.sh
[?] umountroot
[-] urandom
[+] vsftpd
[+] weewx
[-] x11-common
Los +‘s indican servicios en ejecución, los -’s servicios no en ejecución, los ?’s servicios que no permiten status como comando posible: son en su mayoría comandos que no necesitan ejecutarse todo el tiempo, sólo ocasionalmente.
Volviendo a tu pregunta, necesitas entender los niveles de ejecucións 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 progresa hasta el nivel de ejecución final estándar de su distro (de 2 a 5). Identificas tu runlevel actual mediante el comando
# runlevel
N 2
(en mi caso, un servidor headless). Los otros niveles de ejecución son (de nuevo 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 se identifica también como S.
En un arranque normal, por lo tanto, usted 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 de /etc/init.d/, que es donde se guardan los archivos que identifican los distintos servicios. La línea en cuestión identifica el nivel de ejecución en el que debe iniciarse cada servicio. Si un servicio se inicia en el nivel de ejecución N, cuando el sistema avanza a N+1 no es necesario volver a iniciarlo, pero si se encuentra sin ejecutar se inicia.
Esto 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 duras y blandas para el servicio en cuestión, _es decir, _servicios que deben ejecutarse y deberían ejecutarse antes del servicio que se está examinando. Sin los servicios Required-Start, el servicio en cuestión fallará, sin los servicios Should-Start en cambio no habrá un fallo general, posiblemente sólo la falta de algunas características útiles. Lo mismo ocurre en la parada con Required-Stop y Should-Stop.
SYSTEMD :
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, los que se inician al arrancar, sólo hay que 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 éste sólo mostrará los servicios que su SO tiene en memoria = el SO cree que necesita), mientras que systemctl list-unit-files mostrará todos los servicios instalados, incluyendo los que están enmascarados (es decir, los que se supone que nunca se inician, ni siquiera manualmente), y los que no se activarán, que se llaman _estáticos. En otras palabras, el comando que sugerí es más completo que el que lista sólo los servicios activos.
NB : systemd es muy diferente de los sistemas init anteriores. En particular, no tiene niveles de ejecución, sino objetivos. Los runlevels siguen existiendo por razones de compatibilidad, y se pueden ver como objetivos específicos listando todos los objetivos disponibles mediante
systemctl list-unit-files --type=target
mientras que puedes ver tu objetivo actual mediante
$ systemctl get-default
graphical.target
Para más información sobre esto, puedes leer la excelente página introductoria de DigitalOcean .