Die Anzahl und Art der Dämonen, die in den Speicher geladen und vom Kernel auf einem bestimmten System ausgeführt werden, werden durch ein komplexes Zusammenspiel mehrerer Faktoren definiert:
1. Das Initialisierungssystem des Systems (Init): Dies ist der Haupttreiber. Das Init -System (z. B. Systemd, Sysvinit, Runit) ist für das Starten, Stoppen und Verwalten von Daemonen verantwortlich. Es liest Konfigurationsdateien (wie `/etc/inittab` für sysvinit- oder systemd -Einheitsdateien), die angeben, welche Daemons zur Startzeit und unter den Bedingungen gestartet werden sollen. Unterschiedliche Init -Systeme haben unterschiedliche Konfigurationsmethoden und Philosophien.
2. Konfigurationsdateien: Diese Dateien beschreiben, welche Daemons ausgeführt werden sollen, ihre Ausführungsparameter (wie die Befehlszeilenargumente), Abhängigkeiten zwischen Daemons (welche vor anderen beginnen müssen) und die Stufen (sysvinit) oder Zielzustände (SYSTEMD). Diese Konfigurationen definieren den grundlegenden Satz von Daemonen.
3. Runlevels/Zielzustände: (In erster Linie relevant für sysvinit) verschiedene Runlevels repräsentieren verschiedene Systemzustände (z. B. Einzelbenutzermodus, Mehrbenutzermodus). Das Init -System lädt je nach aktivem Runlevel einen anderen Satz von Daemonen. Systemd verwendet "Ziele", die flexibler und leistungsfähiger sind als Runlevels.
4. Abhängigkeiten zwischen Daemons: Daemons verlassen sich oft darauf, dass andere Daemons aktiv sind. Beispielsweise kann ein Webserver -Daemon von einem Netzwerk -Daemon abhängen. Das Init -System stellt sicher, dass Abhängigkeiten vor dem Starten eines Daemons erfüllt werden.
5. On-Demand-Dienste: Einige Daemons werden möglicherweise nicht zur Startzeit geladen, sondern bei Bedarf dynamisch gestartet. Diese werden häufig durch Benutzeranfragen oder andere Systemereignisse ausgelöst. Network -Dienste, beispielsweise, beginnen Sie beispielsweise häufig nur, wenn eine Verbindung versucht wird.
6. Automatische Startskripte: Einige Anwendungen oder Softwarepakete installieren ihre eigenen Start -Skripte, die dazu führen, dass das Init -System zu den zugehörigen Dämonen beim Start oder bei Bedarf startet.
7. Benutzer initiierte Prozesse: Obwohl nicht ausschließlich Daemons im traditionellen Sinne, können Benutzer Prozesse starten, die im Hintergrund ausgeführt werden und effektiv wie Dämonen verhalten (obwohl ihnen einige der Eigenschaften von richtig gestalteten Daemons fehlen).
8. Kernelmodule: Während nicht streng Daemons, können Kernel -Module (die die Kernelfunktionalität erweitern) die Erstellung oder Modifikation des Verhaltens von Daemons auslösen. Eine neue Netzwerkschnittstelle muss möglicherweise neue dämonen im Zusammenhang mit Netzwerk starten.
Zusammenfassend ist es kein einzelnes Element, sondern ein Zusammenarbeit zwischen der Konfiguration des Init -Systems, des Verständnisses von Abhängigkeiten und möglicherweise dynamischen Starts, die durch andere Ereignisse ausgelöst werden, die den genauen Satz von Dämonen festlegen, die auf einem bestimmten System ausgeführt werden. Die Komplexität ergibt sich aus der Notwendigkeit, eine Vielzahl von Systemdiensten effizient und robust zu verwalten.