Soy completamente nuevo en el mundo de Linux, así que lamento cualquier error que pueda decir.
Estoy tratando de ejecutar un Mongo DB en una máquina Debian 8.5. Cuando instalé el paquete (precompilado desde percona.com), noté los siguientes archivos:
/etc/init.d/mongod (1)
/lib/systemd/system/mongod.service (2)
Sobre /etc/init.d/mongod
Entiendo que esto se llama (siempre y cuando se registre a través de update-rc.d
) en el arranque / en otros estados del sistema en particular (no quiero obtener información técnica sobre esto, estoy absorbiendo mucha información y esto parece menos importante).
Esto está perfectamente bien para mí. El script realiza muchas inicializaciones y finalmente lanza el demonio mongo. Parece tener "disparadores" para iniciar, detener, reiniciar, etc. y, por lo que tengo entendido, puedo activarlos con sudo service mongod <action>
.
Acerca de /lib/systemd/system/mongod.service
Este archivo parece hacer lo mismo (es decir, ejecutar mongo), pero con menos configuración, solo una línea en el parámetro ExecStart:
[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
Por lo que yo entiendo, esto se puede activar con sudo systemctl start mongod
.
No entiendo si esto se llama en el arranque o no.
No entiendo por qué la necesidad de dos de estos archivos de 'servicio' y cómo puedo deshacerme de uno (posiblemente el que está en / lib / systemd, ya que es mucho más simple).
No entiendo si hay alguna relación entre los dos.
He leído que también
systemctl
funciona eninit.d
scripts, y en este caso no entiendo cuál de los dos archivos se activarásystemctl mongod start
.
Creo que hay algo de redundancia y debería elegir solo una de las dos formas. Y quiero estar seguro de que es
- llamado en el arranque
- invocable por comando (como
service
osystemctl
).
¿Podrías ayudarme a aclarar mi mente? Con la ayuda de algunos comentarios, probablemente pueda enfocar y reducir la pregunta.
fuente
systemctl disable mongod
; luego cambió el nombre de mongod.service a mongod-backup.service; entoncessystemctl daemon-reload
. ¿Crees que esto fue correcto? He leído que no debe modificar archivos en / lib / systemd / system /, pero sin cambiar el nombre, systemctl siguió ignorando el script init.d.mongod
. También existe la posibilidad de que tenga que eliminar algunas dependencias estrictas, pero no lo habría pensado. Una forma segura de modificar los servicios afectados es copiarlos/etc/systemd/system/
y modificar la copia.