Estou supondo que você tenha um Raspberry usando o raspian, que, pelo que sei, ainda não mudou para systemd . Nesse caso, a resposta é a seguinte.
EDIT: para systemd (Jessie ou posterior), veja na parte inferior .
Primeiro, você pode determinar qual sistema está atualmente executando por meio do comando:
sudo service --status-all
Você receberá uma lista assim:
[ + ] triggerhappy
[ + ] udev
[ ? ] udev-mtab
[ ? ] umountfs
[ ? ] umountnfs.sh
[ ? ] umountroot
[ - ] urandom
[ + ] vsftpd
[ + ] weewx
[ - ] x11-common
Os + indicam serviços em execução, os serviços - 's não em execução, os ? serviços que não permitem status como um comando possível: eles são principalmente comandos que não precisam ser executados o tempo todo, apenas ocasionalmente.
Para voltar à sua pergunta, você precisa entender runlevel s no Linux. Runlevels (0-6 + S) identificam quais serviços podem / devem ser executados. Uma seqüência de inicialização progride de um nível de execução inicial (especificado em / etc / inittab , no meu Raspberry
# The default runlevel.
id:2:initdefault:
esta linha identifica-a como 2 e, em seguida, avança para o nível de execução final padrão da sua distribuição (de 2 a 5). Você identifica seu runlevel atual por meio do comando
# runlevel
N 2
(no meu caso, um servidor sem cabeçalho). Os outros runlevels são (novamente em é / etc / inittab *):
# Runlevel 0 is halt.
# Runlevel 1 is single-user.
# Runlevels 2-5 are multi-user.
# Runlevel 6 is reboot.
O usuário único (1) também é identificado como S.
Em uma inicialização normal, você começa em 2 e progride até 5. Para encontrar os serviços iniciados nessa progressão, emita 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 arquivos em /etc/init.d / , que é onde os arquivos que identificam os vários serviços são manteve. A linha em questão identifica o nível de execução em que cada serviço deve ser iniciado. Se um serviço for iniciado no nível de execução N, quando o sistema progredir para N + 1, ele não precisará ser iniciado novamente, mas se não for executado, será iniciado.
Isso lhe dá uma ideia exata dos diferentes estágios em que os serviços são iniciados. Mas dentro do mesmo runlevel, as linhas Required-Start e Should-Start definem dependências hard e soft para o serviço em questão, ie serviços que devem executar e devem é executado antes do serviço que está sendo examinado. Sem os serviços de Início Necessário, o serviço em questão falhará, sem os serviços Should-Start, em vez disso, não haverá falha geral, possivelmente apenas a falta de alguns recursos úteis. O mesmo ocorre na parada com parada obrigatória e parada obrigatória.
SYSTEMD :
O comando para listar todos os serviços é
systemctl list-unit-files
que vai cuspir muita informação. Para selecionar todos os serviços ativados , isto é, , aqueles que são iniciados na inicialização, apenas grep o comando acima da seguinte forma:
systemctl list-unit-files | grep enabled
Eu prefiro este comando para systemctl list-units : a diferença é que este só irá mostrar os serviços que o seu sistema operacional tem na memória = o SO acha necessário), enquanto o systemctl list- arquivos unitários exibirão todos serviços instalados, incluindo aqueles mascarados ( ie aqueles que nunca devem ser iniciados, nem mesmo manualmente), e aqueles que ele não ativa, que são chamados de static . Em outras palavras, o comando que sugeri é mais abrangente do que aquele que lista apenas os serviços ativos .
NB : o systemd é muito diferente dos sistemas init anteriores. Em particular, não possui runlevels , mas alvos . runlevels ainda existem por motivos de compatibilidade e podem ser vistos como alvos específicos listando todos os destinos disponíveis por meio de
systemctl list-unit-files --type=target
enquanto você pode ver sua meta atual por meio de
$ systemctl get-default
graphical.target
Para saber mais sobre isso, leia DigitalOcean Excelente página introdutória .