Jak stwierdzić, które usługi działają podczas uruchamiania na Raspberry Pi? (raspbian)

17

Mam kilka usług, które działają podczas rozruchu, ale tak naprawdę zapomniałem, jak je skonfigurowałem! Jeśli chcę zmienić ich aktywność, jak mogę to zrobić? Na przykład może chcę wyłączyć usługę przy uruchamianiu podczas uruchamiania, a może chcę ją uruchomić przy użyciu innej metody.

W szczególności mam usługę openvpn, która działa poprawnie podczas rozruchu, ale niektóre samouczki mówią, że powinienem powiązać usługę programów do udostępniania plików z samą siecią VPN, aby jeśli VPN uległa awarii, to również usługa udostępniania plików. Ale myślę, że być może automatyczne uruchamianie mojej sieci VPN komplikuje sprawy i powinienem ją wyłączyć lub zmodyfikować sposób uruchamiania. Ale jak to sprawdzić?

użytkownik1502186
źródło

Odpowiedzi:

23

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 .

MariusMatutiae
źródło
Raspbian Jessie używa systemd, ale ta odpowiedź wydaje się nadal działać.
ZX9,
1
@ ZX9 Dziękujemy za zwrócenie mojej uwagi na ten stary post, dodałem edycję dla systemd .
MariusMatutiae
8

Do prostego zarządzania usługami startowymi na Raspberry Pi polecam narzędzie rcconf. Umożliwia łatwe włączanie / wyłączanie usług /etc/init.d/. Możesz także sprawdzić, czy są one włączone i będą działać podczas uruchamiania.

Aby zainstalować narzędzie

sudo apt-get install rcconf

I jest bardzo prosty w użyciu z tekstowym interfejsem użytkownika

sudo rcconf
jjurm
źródło
To nie odpowiada OP, który był (i cytuję): Jak powiedzieć, które usługi działają podczas uruchamiania na Raspberry Pi? (raspbian) .
MariusMatutiae
@MariusMatutiae Tak, ponieważ rcconfinformuje, czy usługa jest włączona, czy nie. Zredagowałem odpowiedź, aby wyraźnie powiedzieć, że narzędzie pokazuje ten szczególny rodzaj informacji.
jjurm,
3
sudo nano /etc/rc.local

Tutaj wstawiasz plik wsadowy lub polecenia uruchamiane podczas rozruchu. Ja też uruchamiam Openvpn przy starcie :)

Hexark
źródło