Suppongo che tu abbia un Raspberry usando raspian, che, per quanto ne so, non è ancora passato a systemd . In questo caso, la risposta è la seguente.
EDIT: per systemd (Jessie o successivo), vedere in fondo .
Innanzitutto, è possibile determinare quale sistema è attualmente in esecuzione mediante il comando:
sudo service --status-all
Otterrai un elenco un po 'come questo:
[ + ] triggerhappy
[ + ] udev
[ ? ] udev-mtab
[ ? ] umountfs
[ ? ] umountnfs.sh
[ ? ] umountroot
[ - ] urandom
[ + ] vsftpd
[ + ] weewx
[ - ] x11-common
I + 's indicano i servizi in esecuzione, i -'s servizi non in esecuzione, i ?' S servizi che non permettono lo stato come un possibile comando: sono per lo più i comandi che non hanno bisogno di correre per tutto il tempo, solo di tanto in tanto.
Per tornare alla tua domanda, devi capire i runlevel in Linux. I runlevel (0-6 + S) identificano quali servizi possono / devono essere eseguiti. Una sequenza di avvio procede da un runlevel iniziale (specificato in / etc / inittab , nel mio Raspberry
# The default runlevel.
id:2:initdefault:
questa riga lo identifica come 2, quindi passa al runlevel finale standard della tua distro (da 2 a 5). Identifica il tuo runlevel corrente tramite il comando
# runlevel
N 2
(nel mio caso, un server senza testa). Gli altri runlevel sono (sempre da é / etc / inittab *):
# Runlevel 0 is halt.
# Runlevel 1 is single-user.
# Runlevels 2-5 are multi-user.
# Runlevel 6 is reboot.
L'utente singolo (1) viene spesso identificato come S.
In un avvio normale, quindi inizi da 2 e avanzi fino a 5. Per trovare i servizi avviati in questa progressione, emetti il 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
Questo stampa la riga che inizia con Default-Start in tutti i file in /etc/init.d/ , dove sono conservati i file che identificano i vari servizi. La riga in questione identifica il runlevel in cui ogni servizio deve essere avviato. Se un servizio viene avviato al runlevel N, quando il sistema passa a N + 1 non è necessario riavviarlo, ma se viene rilevato che non è in esecuzione viene avviato.
Questo ti dà un'idea esatta delle diverse fasi in cui vengono avviati i servizi. Ma nello stesso runlevel, le righe Required-Start e Should-Start definiscono dipendenze complesse per il servizio in questione, ovvero i servizi che devono essere eseguiti e devono essere eseguiti prima dell'esame del servizio. Senza i servizi di avvio richiesto, il servizio in questione fallirà, senza i servizi di avvio dovrebbe invece verificarsi un errore generale, probabilmente solo la mancanza di alcune funzionalità utili. Lo stesso accade allo stop con Required-Stop e Should-Stop.
SYSTEMD :
Il comando per elencare tutti i servizi è
systemctl list-unit-files
che sputerà molte informazioni. Per selezionare tutti i servizi abilitati , ovvero quelli che vengono avviati all'avvio, basta eseguire il comando sopra riportato come segue:
systemctl list-unit-files | grep enabled
Preferisco questo comando a systemctl list-units : la differenza è che questo mostrerà solo i servizi che il tuo OS ha in memoria = il SO pensa di aver bisogno), mentre systemctl list-unit-files mostrerà tutti i servizi installati, inclusi quelli che sono mascherato ( cioè quelle che dovrebbero mai essere avviato, neppure manualmente), e quelle che si non attiva, che sono chiamati statica . In altre parole, il comando che ho suggerito è più completo di quello che elenca solo i servizi attivi .
NB : systemd è molto diverso dai precedenti sistemi init. In particolare, non ha runlevel , ma target . i runlevel esistono ancora per motivi di compatibilità e possono essere visti come target specifici elencando tutti i target disponibili tramite
systemctl list-unit-files --type=target
mentre puoi vedere il tuo obiettivo attuale per mezzo di
$ systemctl get-default
graphical.target
Per ulteriori informazioni, puoi leggere l'eccellente pagina introduttiva di DigitalOcean .
systemd
, ma questa risposta sembra ancora funzionare.