Antworten:
Die schnelle Antwort lautet: Es hängt von Ihrem init
System ab.
Die lange Antwort lautet: Für aktuelle Versionen von Ubuntu haben Sie wahrscheinlich eine Mischung aus Upstart und SystemV . Neuere Versionen von Ubuntu nach 15.04 "Vivid Vervet" (und anderen Linux-Distributionen wie RHEL / CentOS 7) verwenden ab sofort SystemD .
So listen Sie alle Dienste auf:
initctl list
initctl show-config
Dieser Einzeiler kann hilfreich sein, um alle Upstart-Dienste aufzulisten und auf ihnen auszuführen :
initctl list | awk '{ print $1 }' | xargs -n1 initctl show-config
So listen Sie alle Dienste auf:
service --status-all
ODER:
# for init scripts:
ls /etc/init.d/
# for runlevel symlinks:
ls /etc/rc*.d/
So listen Sie alle Dienste auf:
systemctl list-unit-files --type=service
ODER:
ls /lib/systemd/system/*.service /etc/systemd/system/*.service
service --status-all
zeigt NICHT an, ob Dienste aktiviert sind, um beim Booten zu starten, zumindest nicht unter Ubuntu 16. Zeigt an, ob Dienste derzeit ausgeführt werden oder nicht.
sudo service --status-all
erhalten alle von den Leistungen zu zeigen. Ein paar waren versteckt, als ich nur service --status-all
auf einem Nicht-Root-Account lief.
systemctl
, service
, initctl
...) , da sie in der Regel der Systemverwaltung Befehle betrachtet werden.
Die Verzeichnisse /etc/init.d
und /etc/rc.*
wurden vom ' upstart
' Init-Tool abgelöst. Obwohl Skripte in diesen Verzeichnissen wie erwartet ausgeführt werden, wird die neue Methode zum Ausführen von Dingen auf init durch Dateien in definiert/etc/init/
Sie können alle Upstart-Jobs mit auflisten, indem Sie upstart über dbus abfragen:
dbus-send --print-reply --system --dest=com.ubuntu.Upstart \
/com/ubuntu/Upstart com.ubuntu.Upstart0_6.GetAllJobs
Möglicherweise müssen Sie Änderungen 0_6
vornehmen, um die Version Ihres Upstarts widerzuspiegeln. Dieser Befehl funktioniert bei meiner übersichtlichen Installation.
initctl list
ist viel schöner als dieser dbus-Befehl. Ich möchte diese Antwort hier als Referenz hinterlassen (anstatt sie komplett zu löschen).
Ich würde es verwenden, initctl show-config <servicename>
um wirklich die Details zu erhalten, wann / ob Ihr Dienst während des Startvorgangs gestartet wird.
Wie so:
$ initctl show-config myservice
myservice
start on runlevel [2345]
stop on runlevel [!2345]
Oder für NFS4 idmap-daemon:
$ initctl show-config idmapd
idmapd
start on (local-filesystems or mounting TYPE=nfs4)
stop on runlevel [06]
chkconfig ist nur auf RedHat-basierten Systemen imho vorzuziehen.
Am 12.04 könnten wir verwenden:
sudo apt-get install chkconfig
chkconfig --list
aber es wurde in 12.10 entfernt .
Beispielausgabe:
acpi-support 0:off 1:off 2:on 3:on 4:on 5:on 6:off
acpid 0:off 1:off 2:off 3:off 4:off 5:off 6:off
apparmor 0:off 1:off 2:off 3:off 4:off 5:off 6:off S:on
Für Ubuntu 18.04 verwenden Sie:
systemctl list-units --type=service
anstatt :
initctl
Ab Ubuntu 16.04 initctl
wurde ersetzt durch systemd
.
https://www.linuxtricks.fr/wiki/systemd-les-commandes-essentielles (FR_fr)
(Wenn es @ Sanjay-Manohar helfen kann)
Neben Systemdiensten und Skripten unter:
/etc/init.d/
/ lib / systemd / system /
/ etc / systemd / system /
Es gibt wahrscheinlich auch AutoStart-Anwendungen , zum Beispiel:
find / -name "*autostart*"
ls -1 "/etc/xdg/autostart" "/home/$USER/.config/autostart" "/usr/share/gdm/autostart" "/usr/share/gnome/autostart"
Gawk benutzen:
ls -l /etc/rc*.d/* | gawk 'match($0, /rc([0-6S]).d.*\/(.*)$/, a) {l[a[2]]=l[a[2]]a[1]","}; END{for(v in l){print v,substr(l[v],1,length(l[v])-1)}}'
Beispielausgabe:
$ ls -l /etc/rc*.d/* | gawk 'match($0, /rc([0-6S]).d.*\/(.*)$/, a) {l[a[2]]=l[a[2]]a[1]","}; END{for(v in l){print v,substr(l[v],1,length(l[v])-1)}}' | egrep README
README 0,1,2,3,4,5,6,S