Sono completamente nuovo nel mondo di Linux, quindi mi dispiace per qualsiasi cosa sbagliata che potrei dire.
Sto cercando di eseguire un Mongo DB su una macchina Debian 8.5. Quando ho installato il pacchetto (pre-costruito da percona.com), ho notato i seguenti file:
/etc/init.d/mongod (1)
/lib/systemd/system/mongod.service (2)
Informazioni su /etc/init.d/mongod
Capisco che questo viene chiamato (purché sia registrato tramite update-rc.d
) all'avvio / in altri stati di sistema particolari (non voglio essere tecnico su questo, sto assorbendo molte informazioni e questo sembra meno importante).
Per me va benissimo. Lo script esegue molte inizializzazioni e infine avvia il demone mongo. Sembra avere "trigger" per avvio, arresto, riavvio, ecc. E per quanto ho capito posso innescare quelli con sudo service mongod <action>
.
Informazioni su /lib/systemd/system/mongod.service
Questo file sembra fare la stessa cosa (cioè eseguire mongo), ma con meno configurazione, solo una riga nel parametro 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
Per quanto ho capito, questo può essere attivato sudo systemctl start mongod
.
Non capisco se questo viene chiamato all'avvio o meno.
Non capisco perché la necessità di due di questi file di "servizio", e come posso liberarmene (forse quello in / lib / systemd, dato che è molto più semplice).
Non capisco se c'è qualche relazione tra i due.
Ho letto che
systemctl
funziona anche con gliinit.d
script e in questo caso non capisco da quale dei due file verrà attivatosystemctl mongod start
.
Penso che ci sia un po 'di ridondanza e dovrei scegliere solo uno dei due modi. E voglio essere sicuro che lo sia
- chiamato all'avvio
- richiamabile tramite comando (come
service
osystemctl
).
Potresti aiutarmi a schiarirmi le idee? Con l'aiuto di alcuni commenti posso probabilmente concentrarmi e restringere la domanda.
systemctl disable mongod
:; quindi rinominato mongod.service in mongod-backup.service; allorasystemctl daemon-reload
. Pensi che fosse corretto? Ho letto che non dovresti modificare i file in / lib / systemd / system /, ma senza rinominare, systemctl ha continuato a ignorare lo script init.d.