Presumo que tenha um Raspberry usando framboesa, que, tanto quanto sei, ainda não passou para o systemd. Neste caso, a resposta é a seguinte.
EDIT: para systemd (Jessie ou posterior), ver no fundo.
Primeiro, pode determinar qual o sistema que está currentemente a funcionar por meio do comando:
sudo service --status-all
Obterá uma lista um pouco como esta:
[+] triggerhappy
[+] udev
[?] udev-mtab
[?] umountfs
[?] umountnfs.sh
[?] umountroot
[-] urandom
[+] vsftpd
[+] weewx
[-] x11-common
Os +‘s indicam serviços em execução, os -’s serviços não em execução, os ?’s serviços que não permitem status como um possível comando: são na sua maioria comandos que não precisam de correr o tempo todo, apenas ocasionalmente.
Para voltar à sua pergunta, precisa de compreender nível de execução no Linux. Os níveis de execução (0-6 + S) identificam quais os serviços que podem/deve ser executados. Uma sequência de arranque progride a partir de um runlevel inicial (especificado em /etc/inittab, no meu Raspberry
# The default runlevel.
id:2:initdefault:
esta linha identifica-o como 2, e depois progride para o seu runlevel final padrão de distro (de 2 a 5). Identifica o seu runlevel actual por meio do comando
# runlevel
N 2
(no meu caso, um servidor sem cabeça). Os outros runlevels são (novamente de é/etc/inittab*):
# Runlevel 0 is halt.
# Runlevel 1 is single-user.
# Runlevels 2-5 are multi-user.
# Runlevel 6 is reboot.
Utilizador único (1) é frequentemente também identificado como S.
Numa inicialização normal, assim começa em 2, e progride até 5. Para encontrar os serviços iniciados nesta progressão, emitir o 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
Isto imprime a linha que começa com Default-Start em todos os ficheiros em /etc/init.d/, que é onde são guardados os ficheiros que identificam os vários serviços. A linha em questão identifica o nível de execução onde cada serviço deve ser iniciado. Se um serviço é iniciado no nível de execução N, quando o sistema progride para N+1 não precisa de ser iniciado novamente, mas se não for encontrado em execução, é iniciado.
Isto dá-lhe uma ideia exacta das diferentes fases em que os serviços são iniciados. Mas dentro do mesmo nível de execução, as linhas Required-Start e Should-Start definem dependências duras e suaves para o serviço em questão, i.e. serviços que devem correr e devem correr antes do serviço ser examinado. Sem os serviços Required-Start, o serviço em questão falhará, sem os serviços Should-Start não haverá falha geral, possivelmente apenas a falta de algumas características úteis. O mesmo ocorre quando se pára com o serviço de Paragem Necessária-Paragem e de Dever-Paragem.
SYSTEMD :
O comando para listar todos os serviços é
systemctl list-unit-files
o que irá cuspir muita informação. Para seleccionar todos os serviços enabled, i.e, aqueles que são iniciados no arranque, basta saudar o comando acima como se segue:
systemctl list-unit-files | grep enabled
prefiro este comando a systemctl list-units: a diferença é que este apenas exibirá serviços que o seu SO tem na memória = o SO pensa que precisa), enquanto que systemctl list-unit-files exibirá todos os serviços instalados, incluindo aqueles que são masked (i.e. aqueles que supostamente nunca serão iniciados, nem mesmo manualmente), e aqueles que serão **não* activados, que são chamados static. Por outras palavras, o comando que sugeri é mais abrangente do que o que lista apenas static serviços.
NB* : systemd é muito diferente dos sistemas init anteriores. Em particular, não tem níveis de execução, mas objectivos. níveis de execução ainda existem por razões de compatibilidade, e podem ser vistos como alvos específicos listando todos os alvos disponíveis através de
systemctl list-unit-files --type=target
enquanto pode ver o seu alvo actual através de
$ systemctl get-default
graphical.target
Para mais sobre isto, pode ler A excelente página introdutória da DigitalOcean .