Автоматическое уничтожение процесса mongod при завершении работы Mac OS

823
user689098

Поскольку каждый раз, когда я забываю вручную убить процесс mongod, базы данных должны быть восстановлены. Я использую команду, которую, как pidofмне кажется, я использовал для установки brew, которая возвращает номер pid процесса, например:

$pidof mongod  44512 

Я уверен, что это может быть | передайте какой-нибудь скрипт и убейте демона перед выключением, предотвращая всевозможные проблемы с mongodb. Вы можете помочь?

Я использую MacOS Sierra.

1
Почему бы просто не использовать launchd? Daniel B 7 лет назад 0

1 ответ на вопрос

0
Seth

Поскольку MacOS, вероятно, использует сборку Linux MongoDB, вы можете попробовать использовать --shutdownопцию, упомянутую в документации . Следует чисто отключить БД.

Опция --shutdown полностью и безопасно завершает процесс Mongod. При вызове mongod с этой опцией вы должны установить опцию --dbpath либо напрямую, либо через файл конфигурации и опцию --config.

Опция --shutdown доступна только в системах Linux.

Более того, если вы посмотрите учебники в документации, вы увидите, что вы также можете использовать следующие команды в оболочке mongo, которые должны использоваться внутри скрипта:

use admin db.shutdownServer() 

Третий метод, перечисленный в документации, действительно прост. Так что это может зависеть от того, как MacOS работает killпо сравнению с Linux. Так что явная отправка, SIGTERMа не SIGKILLиспользование kill -2должна изящно прекратить это.

Похожие вопросы