Eine Sache, die mich in Ubuntu immer verwirrte, war, wie Systemdienste gestartet werden. Ich weiß, dass Ubuntu Upstart verwendet und SysV unterstützt, aber welches wird zum Starten der Dienste verwendet? Dies ist wichtig, wenn Sie einen "manuellen" Start für einen Dienst wünschen.
Zum Beispiel habe ich auf meinem System Dateien für die folgenden Dienste entweder in /etc/init.d/<service>
(SysV) und /etc/init/<service>.conf
(Upstart):
acpid, mysql, networking, qemu-kvm, ufw, libvirt-bin
Also, wenn ich die Ausführung von MySQL beim Start deaktivieren möchte, muss ich den Upstart-Weg oder den SysV-Weg verwenden, um es zu deaktivieren? Wie kann ich auch feststellen, welche davon wirklich zum Starten eines allgemeinen Dienstes verwendet werden?
Bearbeiten
Der eigentliche Zweifel besteht hier nicht darin, wie Dienste mit SysV / Upstart deaktiviert / aktiviert werden. Was mich wirklich verwirrt, ist, dass einige Dienste gleichzeitig in SysV und Upstart definiert (und aktiviert) zu sein scheinen. Gibt es einen Vorrang zwischen ihnen (wie wenn mysql
es in beiden Fällen aktiviert ist, um es mit SysV zu starten)? Oder kann es sein, dass ein Tool das andere im Hintergrund verwendet?
Antworten:
Bei Diensten, die sowohl in SysV als auch in upstart definiert sind, wird im Allgemeinen beim Neustart über SysV Folgendes angezeigt:
Damit meine ich, dass Upstart für diese Dienste bevorzugt wird und die SysV-Implementierung nur ein Wrapper ist.
Auch ich denke du hast die Bedeutung der Verzeichnisse rückwärts. / etc / init ist die Upstart-Konfiguration, /etc/init.d ist die SysV-Kompatibilität, es handelt sich jedoch nur um Symlinks zum Upstart für diese Art von Diensten.
quelle
Dies hängt in hohem Maße von der Anwendung und ihrem Verpackungsbetreuer ab.
Es gibt eine starke Präferenz für Upstart-Skripte, weil sie Ereignisse verarbeiten (was im Allgemeinen eine großartige Sache ist), aber viele Anwendungen nicht gut genug Upstart-Skripte zur Verfügung haben oder der Betreuer der Anwendung sich dafür entschieden hat, die Standardeinstellungen beizubehalten (Anwendung oder Debian). .
In jedem Fall sind Sie in der Lage, sich anzupassen.
.conf
, odermanual
auf die Datei. Auf diese Weise können Sie den Dienst manuell laden.Für ältere Dienste:
Wenn Sie ein
/etc/init.d/
Skript für etwas und ein/etc/init/
Skript haben und überprüfen möchten, ob die init.d-Version noch aktiv ist, können Sie Folgendes überprüfen:Wenn Sie eine Menge von Symlinks sehen, ist diese in der alten SysV-Init installiert.
quelle
acpid
), kann ich davon ausgehen, dass er von SysV gestartet wird? Oder wenn ich es deaktivieren möchte, müsste ich es mitupdate-rc.d
und den Umbenennungstrick tun ?