Eu sou completamente novo no mundo linux, então desculpe por qualquer coisa errada que eu possa dizer.
Estou tentando executar um Mongo DB em uma máquina Debian 8.5. Quando instalei o pacote (pré-construído a partir do percona.com), notei os seguintes arquivos:
/etc/init.d/mongod (1)
/lib/systemd/system/mongod.service (2)
Sobre o /etc/init.d/mongod
Eu entendo que isso é chamado (desde que seja registrado via update-rc.d
) na inicialização / em outros estados particulares do sistema (não quero ser técnico nisso, estou absorvendo muitas informações e isso parece menos importante).
Isso é perfeitamente bom para mim. O script faz muita inicialização e finalmente inicia o daemon mongo. Parece ter "gatilhos" para iniciar, parar, reiniciar, etc, e até onde eu entendo, posso acioná-los sudo service mongod <action>
.
Sobre /lib/systemd/system/mongod.service
Este arquivo parece fazer a mesma coisa (ou seja, executar o 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
Tanto quanto eu entendo isso pode ser desencadeado 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 'serviço' e como posso me livrar de um (possivelmente o arquivo em / lib / systemd, pois é muito mais simples).
Não entendo se existe alguma relação entre os dois.
Também li que
systemctl
funciona eminit.d
scripts e, neste caso, não entendo quais dos dois arquivos serão acionadossystemctl mongod start
.
Eu acho que há alguma redundância e devo escolher apenas uma das duas maneiras. E eu quero ter certeza de que é
- chamado na inicialização
- chamável por comando (como
service
ousystemctl
).
Você poderia me ajudar a limpar minha mente? Com a ajuda de alguns comentários, provavelmente posso me concentrar e refinar a questão.
fonte
systemctl disable mongod
:; renomeou mongod.service para mongod-backup.service; entãosystemctl daemon-reload
. Você acha que isso estava correto? Eu li que você não deve modificar arquivos em / lib / systemd / system /, mas sem renomear, systemctl continuou ignorando o script init.d.mongod
. Há também uma chance de você ter que remover algumas dependências estritas, mas eu não pensaria assim. Uma maneira segura de modificar os serviços afetados é copiá-los/etc/systemd/system/
e modificar a cópia.