나는 리눅스 세계에 완전히 익숙하지 않기 때문에 내가 잘못 말할 수있는 것에 대해 죄송합니다.
Debian 8.5 컴퓨터에서 Mongo DB를 실행하려고합니다. 패키지를 설치했을 때 (percona.com에서 사전 빌드 됨) 다음 파일을 발견했습니다.
/etc/init.d/mongod (1)
/lib/systemd/system/mongod.service (2)
/etc/init.d/mongod에 대하여
나는 update-rc.d
부팅시 / 다른 특정 시스템 상태에서 (을 통해 등록되어있는 한) 호출된다는 것을 이해합니다 (이에 대해 기술적 인 것을 원하지 않고 많은 정보를 흡수하고 덜 중요합니다).
이것은 나에게 완벽합니다. 스크립트는 많은 초기화를 수행하고 마지막으로 mongo 데몬을 시작합니다. 시작, 중지, 다시 시작 등을위한 "트리거"가있는 것으로 보입니다 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 스크립트를 무시하고 있습니다.