Zakładam, że masz Raspberry używając raspian, który, według mojej najlepszej wiedzy, nie przeniósł się jeszcze do systemd. W tym przypadku odpowiedź jest następująca.
EDIT: dla systemd (Jessie lub nowszy), zobacz na dole.
Po pierwsze, możesz określić, który system jest obecnie uruchomiony za pomocą polecenia:
sudo service --status-all
Otrzymasz listę nieco podobną do tej:
[+] triggerhappy
[+] udev
[?] udev-mtab
[?] umountfs
[?] umountnfs.sh
[?] umountroot
[-] urandom
[+] vsftpd
[+] weewx
[-] x11-common
Znaki + oznaczają usługi uruchomione, znaki _- usługi nie uruchomione, znaki ? usługi, które nie dopuszczają _status jako możliwej komendy: są to w większości komendy, które nie muszą być uruchamiane cały czas, tylko od czasu do czasu.
Wracając do twojego pytania, musisz zrozumieć runlevels w Linuksie. Runlevels (0-6 + S) określają, które usługi mogą/muszą być uruchomione. Sekwencja startowa postępuje od początkowego runlevel (określonego w /etc/inittab, w moim Raspberry
# The default runlevel.
id:2:initdefault:
ta linia identyfikuje go jako 2, a następnie przechodzi do standardowego dla Twojego distro końcowego runlevel (od 2 do 5). Identyfikujesz swój aktualny runlevel za pomocą komendy
# runlevel
N 2
(w moim przypadku jest to serwer bezgłowy). Pozostałe runlevels to (znowu z é/etc/inittab):
# Runlevel 0 is halt.
# Runlevel 1 is single-user.
# Runlevels 2-5 are multi-user.
# Runlevel 6 is reboot.
Single user (1) często jest również identyfikowany jako S.
W normalnym starcie zaczynasz od 2 i przechodzisz do 5. Aby znaleźć usługi uruchomione w tej progresji, wydaj polecenie:
# 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
To wypisuje linię, która zaczyna się od Default-Start we wszystkich plikach w /etc/init.d/, czyli tam, gdzie przechowywane są pliki identyfikujące różne usługi. Linia ta identyfikuje poziom uruchomienia, na którym każda z usług ma być uruchomiona. Jeśli usługa jest uruchomiona na poziomie N, to gdy system przejdzie do poziomu N+1, nie musi być ponownie uruchamiana, ale jeśli nie jest uruchomiona, to jest uruchamiana.
To daje dokładne pojęcie o różnych etapach, w których usługi są uruchamiane. Jednak w obrębie tego samego poziomu uruchomienia linie Required-Start i Should-Start określają twarde i miękkie zależności dla danej usługi, czyli usługi, które muszą zostać uruchomione i powinny zostać uruchomione przed badaną usługą. Bez usług Required-Start usługa ulegnie awarii, bez usług Should-Start zamiast tego nie będzie ogólnej awarii, być może tylko brak niektórych użytecznych funkcji. To samo występuje przy zatrzymaniu z Required-Stop i Should-Stop.
SYSTEMD :
Komenda do wypisania wszystkich usług to
systemctl list-unit-files
, która wypluje wiele informacji. Aby wybrać wszystkie usługi włączone, _tzn. te, które są uruchamiane przy starcie systemu, po prostu wytłuść powyższe polecenie w następujący sposób:
systemctl list-unit-files | grep enabled
Wolę tę komendę od systemctl list-units: różnica polega na tym, że ta wyświetli tylko usługi, które twój OS ma w pamięci = OS myśli, że ich potrzebuje), podczas gdy systemctl list-unit-files wyświetli wszystkie zainstalowane usługi, w tym te, które są maskowane (i.e. te, które mają nigdy nie być uruchomione, nawet ręcznie), i te, których nie uruchomi, które są nazywane static. Innymi słowy, polecenie, które zaproponowałem jest bardziej wszechstronne niż to, które wyszczególnia tylko aktywne usługi.
NB : systemd jest bardzo różny od poprzednich systemów init. W szczególności, nie ma runlevels, ale targets. runlevels nadal istnieją ze względu na kompatybilność, i mogą być widziane jako konkretne cele poprzez wylistowanie wszystkich dostępnych celów poprzez
systemctl list-unit-files --type=target
podczas gdy możesz zobaczyć swój aktualny cel poprzez
$ systemctl get-default
graphical.target
Więcej na ten temat możesz przeczytać doskonałą stronę wprowadzającą DigitalOcean .