Eu sou completamente novo no mundo linux, então sinto muito por qualquer coisa errada que eu possa dizer.
Estou tentando executar um banco de dados Mongo em uma máquina Debian 8.5. Quando eu instalei o pacote (pré construído a partir de percona.com), notei os seguintes arquivos:
/etc/init.d/mongod (1)
/lib/systemd/system/mongod.service (2)
Sobre /etc/init.d/mongod
Eu entendo que isso é chamado (desde que seja registrado via update-rc.d
) na inicialização / em outros estados do sistema em particular (não quero ser técnico sobre isso, estou absorvendo muitas informações e isso parece menos importante).
Isso está perfeitamente bem para mim. O script faz muita inicialização e finalmente inicia o daemon mongo. Parece ter "gatilhos" para iniciar, parar, reiniciar, etc e, tanto quanto eu entendo eu posso acionar aqueles com sudo service mongod <action>
.
Sobre /lib/systemd/system/mongod.service
Este arquivo parece fazer a mesma coisa (ou seja, executar mongo), mas com menos configuração, apenas uma linha no 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
Até onde eu sei, isso pode ser acionado com sudo systemctl start mongod
.
-
Eu não entendo se isso é chamado na inicialização ou não.
-
Eu não entendo por que a necessidade de dois desses arquivos de 'service', e como eu posso me livrar de um (possivelmente aquele em / lib / systemd, já que é muito mais simples).
-
Eu não entendo se há alguma relação entre os dois.
-
Eu li que systemctl
também funciona em init.d
scripts e, nesse caso, não entendo qual dos dois arquivos será acionado por systemctl mongod start
.
Eu acho que há alguma redundância e eu deveria escolher apenas uma das duas formas. E eu quero ter certeza de que é
- chamado no boot
- que pode ser chamado por comando (como
service
ou systemctl
).
Você poderia me ajudar a limpar minha mente? Com a ajuda de alguns comentários, posso provavelmente concentrar-me e refinar a questão.