Je suis complètement nouveau dans le monde Linux, donc désolé pour tout ce que je peux dire de mal.
J'essaie d'exécuter une base de données Mongo sur une machine Debian 8.5. Lorsque j'ai installé le package (pré-construit à partir de percona.com), j'ai remarqué les fichiers suivants:
/etc/init.d/mongod (1)
/lib/systemd/system/mongod.service (2)
À propos de /etc/init.d/mongod
Je comprends que cela est appelé (tant qu'il est enregistré via update-rc.d
) au démarrage / dans d'autres états du système particulier (je ne veux pas être technique à ce sujet, j'absorbe beaucoup d'informations et cela semble moins important).
C'est parfaitement bien pour moi. Le script fait beaucoup d'initialisation et lance enfin le démon mongo. Il semble avoir des «déclencheurs» pour démarrer, arrêter, redémarrer, etc. et pour autant que je sache, je peux déclencher ceux avec sudo service mongod <action>
.
À propos de /lib/systemd/system/mongod.service
Ce fichier semble faire la même chose (c'est-à-dire exécuter mongo), mais avec moins de configuration, une seule ligne dans le paramètre 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
Autant que je sache, cela peut être déclenché avec sudo systemctl start mongod
.
Je ne comprends pas si cela est appelé au démarrage ou non.
Je ne comprends pas pourquoi le besoin de deux de ces fichiers «service», et comment puis-je m'en débarrasser (peut-être celui de / lib / systemd, car il est beaucoup plus simple).
Je ne comprends pas s'il y a une relation entre les deux.
J'ai lu que cela
systemctl
fonctionne aussi sur lesinit.d
scripts, et dans ce cas, je ne comprends pas lequel des deux fichiers sera déclenchésystemctl mongod start
.
Je pense qu'il y a une redondance et je ne devrais choisir qu'une seule des deux façons. Et je veux être sûr que c'est
- appelé au démarrage
- appelable par commande (comme
service
ousystemctl
).
Pourriez-vous m'aider à vider mon esprit? Avec l'aide de quelques commentaires, je peux probablement me concentrer et affiner la question.
la source
systemctl disable mongod
:; puis renommé mongod.service en mongod-backup.service; alorssystemctl daemon-reload
. Pensez-vous que c'était correct? J'ai lu que vous ne devriez pas modifier les fichiers dans / lib / systemd / system /, mais sans renommer, systemctl a continué d'ignorer le script init.d.mongod
. Il est également possible que vous deviez supprimer certaines dépendances strictes, mais je ne l'aurais pas pensé. Un moyen sûr de modifier les services concernés consiste à les copier/etc/systemd/system/
et à modifier la copie.