Làm cách nào tôi có thể chạy mongod trong nền trên unix (mac osx)?


50

Tôi muốn chạy mongod trong nền như một thứ luôn luôn hiện diện. cách nào tốt nhất để làm việc này? Giống như cách tôi có thể chạy MySQL khi khởi động và nó luôn luôn chạy ở chế độ nền. Có thể đó chỉ là một số tập lệnh bash, nhưng sẽ rất tuyệt nếu nghe nếu có cách tốt hơn. Nếu nó chỉ là bash - nó sẽ trông như thế nào? Cảm ơn.


1
npm install pm2 -g+ pm2 start mongod+ pm2 savelà một cách đa nền tảng tốt đẹp để giữ cho bất kỳ quá trình nền nào chạy qua các phiên.
Jthorpe

Câu trả lời:


81

Trình nền MongoDB (mongod) có tùy chọn dòng lệnh để chạy máy chủ trong nền ...

--fork

Tùy chọn dòng lệnh này yêu cầu bạn cũng chỉ định một tệp để ghi thông điệp (vì nó không thể sử dụng bảng điều khiển hiện tại). Một ví dụ về lệnh này trông giống như:

mongod --fork --logpath /var/log/mongod.log

Bạn có thể đặt tệp này vào tệp tập lệnh bash /etc/init.d/mongod. Và sau đó để dịch vụ chạy khi khởi động, hãy tạo các liên kết tượng trưng tiêu chuẩn (S ## & K ##) bên trong /etc/rc#.d/. Dưới đây là một hướng dẫn giải thích quá trình này chi tiết hơn. Cuộn xuống phần có tiêu đề "Khởi động kích hoạt tập lệnh". Điều này cũng có thêm lợi ích là có thể thực thi các lệnh như ...

service mongod status
service mongod start
service mongod stop

Tôi dường như không thể làm điều này trong Windows.
Malik Brahimi


./bin/mongod --fork --logpath = log / mongod.log --dbpath = data / db làm việc cho tôi
Selvakumar Esra

Nếu bạn không muốn tạo một tệp nhật ký bổ sung, thì cũng có tùy chọn --syslogtrong đó mọi thứ chỉ được ghi vào nhật ký hệ thống.
Markus Graf

@Jlie Webb. Và nó sẽ tiếp tục chạy sau khi tôi đăng xuất, ví dụ, kết nối ssh?
Miguel

11

Vì bạn đang sử dụng máy Mac, bạn nên sử dụng Homebrew để cài đặt MongoDB (bạn sẽ cần cài đặt Homebrew nếu bạn chưa có):

brew install mongodb

Giả sử phiên bản đã được cài đặt được đặt tên 2.0.6-x86_64. Sau đó thêm tệp plist LaunchAgent mà nó tạo cho bạn:

mkdir -p ~/Library/LaunchAgents
cp /usr/local/Cellar/mongodb/2.0.6-x86_64/homebrew.mxcl.mongodb.plist ~/Library/LaunchAgents/
launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.mongodb.plist

Điều này sẽ khởi chạy mongodtrong nền bây giờ và mỗi khi bạn khởi động lại máy tính của mình.


1
đã cập nhật:mkdir -p ~/Library/LaunchAgents cp /usr/local/Cellar/mongodb/3.2.10/homebrew.mxcl.mongodb.plist ~/Library/LaunchAgents launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.mongodb.plist
helsont


0

Về mặt kinh điển, để chạy trong nền, chỉ cần bắt đầu với
nohup some_command -to launch &
Vì vậy, đó là nohup &, đặt lệnh bạn muốn chạy trong nền giữa nohup và &. Nó sẽ chạy như bạn, nó sẽ tiếp tục chạy sau khi bạn đóng terminal hoặc đăng xuất. Bạn có thể bắt đầu nó như một người dùng khác thông qua sudo. Để làm cho nó chạy khi bắt đầu, hãy thêm nó vào thay thế init script (không biết họ gọi nó là gì). Nó sẽ ghi bất kỳ đầu ra nào vào một tệp nơi bạn đã khởi động nó được gọi là nohup.out


0

Cách tốt nhất để chương trình chạy khi khởi động trên OS X là tạo LaunchDaemon (xem tài liệu của Apple và xem một số trình tiện ích do Apple cung cấp trong / System / Library / LaunchDaemons) và cài đặt nó trong / Library / LaunchDaemons. Lingon có thể giúp bạn tạo tệp .plist.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.