Ich bin völlig neu in der Linux-Welt, deshalb entschuldige ich mich für alles, was ich falsch sagen könnte.
Ich versuche, eine Mongo-DB auf einem Debian 8.5-Rechner auszuführen. Bei der Installation des Pakets (vorab von percona.com erstellt) sind mir folgende Dateien aufgefallen:
/etc/init.d/mongod (1)
/lib/systemd/system/mongod.service (2)
Über /etc/init.d/mongod
Ich verstehe, dass dies update-rc.d
beim Booten / in anderen bestimmten Systemzuständen aufgerufen wird (solange es über registriert ist ) (ich möchte keine technischen Informationen dazu erhalten, ich absorbiere viele Informationen und dies scheint weniger wichtig zu sein).
Das ist vollkommen in Ordnung für mich. Das Skript führt viele Initialisierungen durch und startet schließlich den Mongo-Daemon. Es scheint "Auslöser" für Start, Stopp, Neustart usw. zu haben, und soweit ich weiß, kann ich diese mit auslösen sudo service mongod <action>
.
Über /lib/systemd/system/mongod.service
Diese Datei scheint dasselbe zu tun (dh mongo ausführen), aber mit weniger Konfiguration, nur eine Zeile im ExecStart-Parameter:
[Unit]
Description=MongoDB (High-performance, schema-free document-oriented database)
After=time-sync.target network.target
[Service]
Type=forking
User=mongod
Group=mongod
PermissionsStartOnly=true
EnvironmentFile=/etc/default/mongod
ExecStart=/usr/bin/env bash -c "/usr/bin/mongod $OPTIONS > ${STDOUT} 2> ${STDERR}"
PIDFile=/var/run/mongod.pid
[Install]
WantedBy=multi-user.target
Soweit ich weiß, kann dies mit ausgelöst werden sudo systemctl start mongod
.
Ich verstehe nicht, ob dies beim Booten aufgerufen wird oder nicht.
Ich verstehe nicht, warum zwei dieser "Service" -Dateien benötigt werden und wie ich eine entfernen kann (möglicherweise die in / lib / systemd, da dies viel einfacher ist).
Ich verstehe nicht, ob es eine Beziehung zwischen den beiden gibt.
Ich habe gelesen, dass
systemctl
das auch mitinit.d
Skripten funktioniert , und in diesem Fall verstehe ich nicht, von welcher der beiden Dateien ausgelöst wirdsystemctl mongod start
.
Ich denke, es gibt eine gewisse Redundanz und ich sollte nur einen der beiden Wege wählen. Und ich möchte sicher sein, dass es so ist
- beim booten angerufen
- aufrufbar per Befehl (wie
service
odersystemctl
).
Könnten Sie mir helfen, meine Meinung zu klären? Mit Hilfe einiger Kommentare kann ich die Frage wahrscheinlich fokussieren und eingrenzen.
quelle
systemctl disable mongod
:; dann mongod.service in mongod-backup.service umbenannt; dannsystemctl daemon-reload
. Glaubst du, das war richtig? Ich habe gelesen, dass Sie Dateien in / lib / systemd / system / nicht ändern sollten, aber ohne sie umzubenennen, ignorierte systemctl das init.d-Skript.mongod
. Es besteht auch die Möglichkeit, dass Sie einige strenge Abhängigkeiten entfernen müssen, aber ich hätte es nicht gedacht. Eine sichere Möglichkeit, die betroffenen Dienste zu ändern, besteht darin, sie zu kopieren/etc/systemd/system/
und die Kopie zu ändern.