Bất kỳ ai nâng cấp hoặc cài đặt Ubuntu 16.04 (còn được gọi là Ubuntu Xenial xerus) đều nhận thấy rằng một số dịch vụ cũ đã ngừng chạy. Vấn đề này được biết đến từ phiên bản 15.04 nhưng tôi sẽ tập trung vào phiên bản trên.
Đó là trường hợp của tôi với MongoDB. Để tạo ra một câu chuyện dài, ngắn, Ubuntu đã chuyển từ phiên bản mới sang hệ thống. Một giải pháp phổ biến cho những vấn đề này là chuyển trở lại giai đoạn mới nổi. Tôi không coi lựa chọn đó là một giải pháp thực sự, chắc chắn không phải về lâu dài.
Một giải pháp thực sự (IMHO) cho vấn đề là viết tập lệnh systemd sẽ khởi động MongodDB. Thật không may, những người MongoDB vẫn chưa cung cấp một cái.
Vì vậy, tôi đã phải viết một từ đầu. Để tạo một trong các bước của riêng bạn, hãy làm theo các bước sau:
- chuyển sang root bằng
sudo su
hoặc sử dụng sudo cho tất cả các bước sau.
-
tạo một tập lệnh dịch vụ (trong ví dụ này, tên của dịch vụ là Mongodb)
nano /lib/systemd/system/mongodb.service
-
Nội dung tệp phải là
[Unit] Description=MongoDB Database Service Wants=network.target After=network.target [Service] ExecStart=/usr/bin/mongod --config /etc/mongod.conf ExecReload=/bin/kill -HUP $MAINPID Restart=always User=mongodb Group=mongodb StandardOutput=syslog StandardError=syslog [Install] WantedBy=multi-user.target
Bạn cũng có thể tải xuống tệp từ đây: mongodb.service
Dưới đây là mô tả nhanh về các trường quan trọng:
ExecStart - Là lệnh chạy. Mongo tự cài đặt trong / usr / bin và tệp cấu hình được ghi tại / etc
User - Uid của quy trình mongod.
Nhóm - Gid của tiến trình mongod. Lưu ý rằng người dùng và nhóm được tạo bởi cài đặt.
Bây giờ để bắt đầu mongodb:
sudo systemctl start mongodb
Để ngừng sử dụng dịch vụ mongodb:
sudo systemctl stop mongodb
Để bật mongodb khi khởi động
sudo systemctl enable mongodb.service
Nếu bạn cần làm mới các dịch vụ, hãy sử dụng:
sudo systemctl daemon-reload