Ich gehe davon aus, dass Sie eine Himbeere mit Himbeer haben, die meines Wissens noch nicht zu systemd übergegangen ist . In diesem Fall lautet die Antwort wie folgt.
EDIT: für systemd (Jessie oder neuer) siehe unten .
Zunächst können Sie mit dem folgenden Befehl feststellen, welches System gerade ausgeführt wird:
sudo service --status-all
Sie erhalten eine Liste in etwa wie folgt:
[ + ] triggerhappy
[ + ] udev
[ ? ] udev-mtab
[ ? ] umountfs
[ ? ] umountnfs.sh
[ ? ] umountroot
[ - ] urandom
[ + ] vsftpd
[ + ] weewx
[ - ] x11-common
Die + ‚s zeigen Dienste laufen, die -'s Dienste nicht ausgeführt wird , die ?‘ S Dienstleistungen , die nicht zulassen Status als möglicher Befehl: sie sind meist Befehle, die nicht brauchen die ganze Zeit zu laufen, nur gelegentlich.
Um zu Ihrer Frage zurückzukehren, müssen Sie Runlevel unter Linux verstehen . Runlevel (0-6 + S) geben an, welche Dienste ausgeführt werden dürfen / müssen. Eine Startsequenz beginnt mit einem anfänglichen Runlevel (angegeben in / etc / inittab in meiner Himbeere)
# The default runlevel.
id:2:initdefault:
Diese Zeile kennzeichnet es als 2 und geht dann zu Ihrem Distro-Standard-Runlevel über (von 2 bis 5). Sie identifizieren Ihren aktuellen Runlevel mit dem Befehl
# runlevel
N 2
(in meinem Fall ein kopfloser Server). Die anderen Runlevel sind (wieder aus é / etc / inittab *):
# Runlevel 0 is halt.
# Runlevel 1 is single-user.
# Runlevels 2-5 are multi-user.
# Runlevel 6 is reboot.
Einzelbenutzer (1) wird häufig auch als S identifiziert.
In einem normalen Systemstart beginnen Sie mit 2 und fahren mit 5 fort. Um die in diesem Verlauf gestarteten Dienste zu finden, geben Sie den folgenden Befehl ein:
# 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
Dies gibt die Zeile aus, die in allen Dateien in /etc/init.d/ mit Default-Start beginnt. In dieser Zeile werden die Dateien gespeichert, die die verschiedenen Dienste identifizieren. Die betreffende Zeile gibt den Runlevel an, auf dem die einzelnen Dienste gestartet werden sollen. Wenn ein Dienst auf Runlevel N gestartet wird und das System auf N + 1 voranschreitet, muss er nicht erneut gestartet werden. Wenn jedoch festgestellt wird, dass er nicht ausgeführt wird, wird er gestartet.
Auf diese Weise erhalten Sie eine genaue Vorstellung von den verschiedenen Phasen, in denen die Dienste gestartet werden. Innerhalb desselben Runlevels definieren die Zeilen Required-Start und Should-Start harte und weiche Abhängigkeiten für den betreffenden Dienst, dh Dienste, die ausgeführt werden müssen und ausgeführt werden sollen , bevor der Dienst untersucht wird. Ohne die Required-Start-Dienste schlägt der betreffende Dienst fehl. Ohne die Should-Start-Dienste tritt kein allgemeiner Fehler auf, möglicherweise nur das Fehlen einiger nützlicher Funktionen. Das gleiche passiert beim Stopp mit Required-Stop und Should-Stop.
SYSTEMD :
Der Befehl zum Auflisten aller Dienste lautet
systemctl list-unit-files
das wird viel info ausspucken. Um alle aktivierten Dienste auszuwählen , dh diejenigen, die beim Booten gestartet werden, führen Sie einfach den obigen Befehl wie folgt aus:
systemctl list-unit-files | grep enabled
Ich bevorzuge diesen Befehl gegenüber systemctl list-units : Der Unterschied ist, dass dieser Befehl nur Dienste anzeigt, die Ihr Betriebssystem im Speicher hat (das Betriebssystem denkt, dass es benötigt wird), während systemctl list-unit-files alle installierten Dienste anzeigen , einschließlich derjenigen, die installiert sind maskiert ( dh solche, die nicht gestartet werden sollen, auch nicht manuell) und solche, die nicht aktiviert werden, die als statisch bezeichnet werden . Mit anderen Worten, der von mir vorgeschlagene Befehl ist umfassender als der, in dem nur aktive Dienste aufgeführt sind.
Anmerkung : systemd unterscheidet sich stark von früheren init-Systemen. Insbesondere hat es keine Runlevel , sondern Ziele . Runlevel existieren aus Kompatibilitätsgründen immer noch und können als spezifische Ziele angesehen werden, indem alle verfügbaren Ziele über aufgelistet werden
systemctl list-unit-files --type=target
während Sie Ihr aktuelles Ziel mit sehen können
$ systemctl get-default
graphical.target
Weitere Informationen hierzu finden Sie auf der ausgezeichneten Einführungsseite von DigitalOcean .
systemd
, aber diese Antwort scheint immer noch zu funktionieren.Für ein einfaches Startup Service Management auf Raspberry Pi empfehle ich Tool
rcconf
. Hiermit können Sie Dienste einfach ein- und ausschalten/etc/init.d/
. Sie können auch sehen, ob sie aktiviert sind und beim Start ausgeführt werden.So installieren Sie das Tool
Und es ist sehr einfach, es mit Text-UI zu verwenden
quelle
rcconf
ob ein Dienst aktiviert ist oder nicht. Ich habe die Antwort so bearbeitet, dass ausdrücklich darauf hingewiesen wird, dass das Tool diese Art von Informationen anzeigt.Hier fügen Sie eine Batch-Datei oder Befehle ein, die beim Booten ausgeführt werden sollen. Ich starte Openvpn automatisch beim Booten :)
quelle