Zakładam, że masz Raspberry używającego raspian, który, zgodnie z moją najlepszą wiedzą, nie przeszedł jeszcze na systemd . W takim przypadku odpowiedź jest następująca.
EDYCJA: dla systemd (Jessie lub nowszy), patrz na dole .
Po pierwsze, możesz ustalić, który system jest obecnie uruchomiony za pomocą polecenia:
sudo service --status-all
Otrzymasz listę podobną do tej:
[ + ] triggerhappy
[ + ] udev
[ ? ] udev-mtab
[ ? ] umountfs
[ ? ] umountnfs.sh
[ ? ] umountroot
[ - ] urandom
[ + ] vsftpd
[ + ] weewx
[ - ] x11-common
W + 's wskazują usługi uruchomiony, -'s usługi nie działa, ? E usługi, które nie pozwalają statusu jako ewentualnego polecenia: w większości są polecenia, które nie muszą działać przez cały czas, tylko od czasu do czasu.
Aby wrócić do pytania, musisz zrozumieć poziom uruchamiania w Linuksie. Poziomy uruchamiania (0–6 + S) określają, które usługi mogą / muszą być uruchomione. Sekwencja rozruchowa postępuje od początkowego poziomu uruchamiania (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 końcowego poziomu dystrybucji (od 2 do 5). Bieżący poziom uruchamiania identyfikujesz za pomocą polecenia
# runlevel
N 2
(w moim przypadku serwer bezgłowy). Pozostałe poziomy uruchamiania to (ponownie z é / etc / inittab *):
# Runlevel 0 is halt.
# Runlevel 1 is single-user.
# Runlevels 2-5 are multi-user.
# Runlevel 6 is reboot.
Pojedynczy użytkownik (1) jest często identyfikowany również jako S.
Podczas normalnego rozruchu zaczynasz od 2, a postępujesz do 5. Aby znaleźć usługi uruchomione w tym postępie, 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
Spowoduje to wydrukowanie wiersza rozpoczynającego się od domyślnego startu we wszystkich plikach w /etc/init.d/ , czyli tam, gdzie przechowywane są pliki identyfikujące różne usługi. Wiersz, o którym mowa, określa poziom uruchamiania, w którym każda usługa ma zostać uruchomiona. Jeśli usługa zostanie uruchomiona na poziomie uruchamiania N, kiedy system przejdzie do N + 1, nie trzeba go ponownie uruchamiać, ale jeśli okaże się, że nie działa, zostanie uruchomiony.
To daje dokładne wyobrażenie o różnych etapach uruchamiania usług. Ale w ramach tego samego poziomu uruchamiania wiersze Wymagany-Start i Powinny-Start definiują twarde i miękkie zależności dla danej usługi, tj. Usługi, które muszą być uruchomione i powinny zostać uruchomione przed badaniem usługi. Bez usług Wymaganego Startu omawiana usługa zawiedzie, bez usług Powinieneś uruchomić zamiast tego nie wystąpi ogólna awaria, być może po prostu brak niektórych przydatnych funkcji. To samo dzieje się w przypadku zatrzymania z wymaganym zatrzymaniem i zatrzymaniem.
SYSTEMD :
Poleceniem wyświetlającym wszystkie usługi jest
systemctl list-unit-files
które wyplują wiele informacji. Aby wybrać wszystkie włączone usługi , tj. Te, które są uruchamiane podczas rozruchu, po prostu grep powyższe polecenie w następujący sposób:
systemctl list-unit-files | grep enabled
Wolę to polecenie od systemctl list-units : różnica polega na tym, że wyświetla tylko usługi, które Twój system operacyjny ma w pamięci = system uważa, że potrzebuje), podczas gdy systemctl lista-unit-files wyświetla wszystkie zainstalowane usługi, w tym te, które są maskowane ( tj. takie, które nie powinny być uruchamiane, nawet ręcznie) oraz te, których się nie aktywuje, które nazywane są statycznymi . Innymi słowy, polecenie, które zasugerowałem, jest bardziej wyczerpujące niż polecenie wymieniające tylko aktywne usługi.
Uwaga : systemd bardzo różni się od poprzednich systemów init. W szczególności nie ma poziomów uruchamiania , ale cele . poziomy pracy nadal istnieją ze względu na kompatybilność i można je postrzegać jako konkretne cele, wymieniając wszystkie dostępne cele za pośrednictwem
systemctl list-unit-files --type=target
podczas gdy możesz zobaczyć swój obecny cel za pomocą
$ systemctl get-default
graphical.target
Aby uzyskać więcej informacji na ten temat, możesz przeczytać doskonałą stronę wprowadzającą DigitalOcean .
systemd
, ale ta odpowiedź wydaje się nadal działać.