Чтобы запустить команду при запуске в OS X, вам необходимо использовать launchd
.
Если вы не хотите использовать Lingon , вам нужно создать список launchd
свойств. Это файл XML, так что вы можете сделать это с помощью вашего любимого текстового редактора или, в качестве альтернативы, вы можете использовать редактор списков свойств, который устанавливается с Mac OS X Dev Tools. Создайте следующее:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>some.meaningful.name</string> <!-- org.mongodb.mongodb perhaps? -->
<key>OnDemand</key>
<false/>
<key>UserName</key>
<string>anAppropriateUser</string>
<key>GroupName</key>
<string>anAppropriateGroup</string>
<key>ProgramArguments</key>
<array>
<string>/Applications/MongoDB/bin/mongod</string>
<string>--dbpath</string>
<string>/usr/local/mongo/data</string>
<string>--fork</string>
<string>--logpath</string>
<string>/usr/local/mongo/log</string>
</array>
</dict>
</plist>
Сохраните это в /Library/LaunchAgents/some.meaningful.name.plist
(вам понадобится учетная запись администратора и / или sudo
), затем откройте терминал и выполните:
sudo launchctl load /Library/LaunchAgents/some.meaningful.name.plist
Это заставит launchd загрузить элемент, что заставит его запустить MongoDB при загрузке. В качестве бонуса launchd
будет следить за ним и, если он выйдет по какой-либо причине, он будет перезапущен. Чтобы избавиться от элемента, просто замените load в приведенной выше команде на unload.
/etc
она должна быть запущена при загрузке? Имеет ли значение, в каком он находится?