Щоб виконати команду при запуску в 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
Це призведе до запуску для завантаження елемента, що призведе до запуску MongoDB під час завантаження. Як бонус, він launchd
буде контролювати його, і якщо він вийде з будь-якої причини, його буде відновлено. Щоб позбутися від елемента, просто замініть навантаження у наведеній вище команді на вивантаження.
/etc
ній, слід запустити під час завантаження? Чи має значення, в якому воно знаходиться?