Я абсолютно новий у світі Linux, тому вибачте за все, що я можу сказати.
Я намагаюся запустити DB DB на машині Debian 8.5. Коли я встановив пакет (попередньо побудований з percona.com), я помітив такі файли:
/etc/init.d/mongod (1)
/lib/systemd/system/mongod.service (2)
Про /etc/init.d/mongod
Я розумію, що це називається (доки воно зареєстровано через update-rc.d
) під час завантаження / в інших конкретних станах системи (не хочу отримувати технічних питань з цього приводу, я поглинаю багато інформації, і це здається менш важливим).
Це для мене прекрасно. Сценарій робить багато ініціалізації і, нарешті, запускає демон Монго. Здається, є "тригери" для запуску, зупинки, перезапуску тощо, і наскільки я розумію, я можу викликати їх sudo service mongod <action>
.
Про /lib/systemd/system/mongod.service
Цей файл, схоже, робить те саме (тобто запускає mongo), але з меншою конфігурацією, лише один рядок у параметрі 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
Наскільки я розумію, це може бути спровоковано sudo systemctl start mongod
.
Я не розумію, називається це під час завантаження чи ні.
Я не розумію, чому потрібні два з цих "службових" файлів, і як я можу позбутися одного (можливо, одного в / lib / systemd, оскільки це набагато простіше).
Я не розумію, чи є стосунки між ними.
Я прочитав, що
systemctl
працює і заinit.d
сценаріями, і в цьому випадку я не розумію, який з двох файлів буде викликанийsystemctl mongod start
.
Я думаю, що є надмірність, і я повинен вибрати лише один із двох способів. І я хочу бути впевненим, що це так
- викликається при завантаженні
- викликається командою (наприклад,
service
абоsystemctl
).
Не могли б ви допомогти мені прояснити свою думку? За допомогою деяких коментарів я, мабуть, можу зосередити та звузити питання.
systemctl disable mongod
:; потім перейменовано на mongod.service в mongod-backup.service; тоsystemctl daemon-reload
. Як ви вважаєте, це було правильно? Я читав, що ви не повинні змінювати файли в / lib / systemd / system /, але без перейменування systemctl продовжував ігнорувати скрипт init.d.