Мне было интересно, в какой файл я должен поместить эту команду bash, чтобы она запускалась при запуске.
# Start the MongoDB server
/Applications/MongoDB/bin/mongod --dbpath /usr/local/mongo/data --fork --logpath /usr/local/mongo/log
Я обыскивал сеть и думаю , что она находится между ~/.bashrc
, ~/profile
, /etc/bashrc
, /etc/profile
или ~/.bash_profile
. Хотя я пробовал это, и они, кажется, запускаются при запуске терминала, а не при запуске Mac . Я пропустил файл?
/etc
она должна быть запущена при загрузке? Имеет ли значение, в каком он находится?/etc/bashrc
и так далее, запускаются, когда вы запускаете оболочку, точно так же, как и~/.bashrc
то, что первый будет запускаться всякий раз, когда любой пользователь запускает оболочку, а не только ваш пользователь.Чтобы запустить команду при запуске в OS X, вам необходимо использовать
launchd
.Если вы не хотите использовать Lingon , вам нужно создать список
launchd
свойств. Это файл XML, так что вы можете сделать это с помощью вашего любимого текстового редактора или, в качестве альтернативы, вы можете использовать редактор списков свойств, который устанавливается с Mac OS X Dev Tools. Создайте следующее:Сохраните это в
/Library/LaunchAgents/some.meaningful.name.plist
(вам понадобится учетная запись администратора и / илиsudo
), затем откройте терминал и выполните:Это заставит launchd загрузить элемент, что заставит его запустить MongoDB при загрузке. В качестве бонуса
launchd
будет следить за ним и, если он выйдет по какой-либо причине, он будет перезапущен. Чтобы избавиться от элемента, просто замените load в приведенной выше команде на unload.источник
<key>LaunchOnlyOnce</key><true/>
к dict.Еще одно простое решение от переполнения стека : вы можете:
your_name.app
будет создан);Выйдите из системы, войдите снова, и все готово. ;)
источник
Чтобы запустить команды при входе в систему, вы можете сделать это:
Создайте текстовый файл, содержащий ваши команды (скрипт bash):
Сохранить этот файл в
~/Library/Startup.cmd
chmod +x ~/Library/Startup.cmd
источник
@reboot
. Однако мой ответ позволил бы запустить графическую программу, поэтому я думаю, что это полезно.cmd
вместоsh
?Вам придется посмотреть, как
launchd
и какlaunchctl
работать на MacOS. Вы можете начать с чтения справочных страниц для обеих команд. Затем вы можете заглянуть внутрь/Library/LaunchAgents/
и найти/Library/LaunchDaemons/
примеры того, как настроить приложения для загрузки в разное время черезlaunchctl
интерфейс.Вот пример, который я нашел на переполнении стека, который может помочь вам в дальнейшем.
источник
Если вам нужен подход, который будет работать в Linux и Mac OS X, задачи cron должно быть достаточно (отредактируйте задачи cron, выполнив
crontab -e
):(Авторы: https://unix.stackexchange.com/questions/49207/how-do-i-set-a-script-that-it-will-run-on-start-up-in-freebsd )
источник
Меня заинтересовал очень простой Unix-ответ на эту проблему, и я нашел его на другом сайте . Вот краткое изложение решения.
Стандарт для оболочек входа в систему - всегда искать файлы конфигурации bash с именем «profile» в следующем порядке: / etc / profile, ~ / .bash_profile, затем ~ / .bash_login и, наконец, ~ / .profile. Когда завершаются входы в систему, они читают ~ / .bash_logout.
В моем случае я просто создал ~ / .bash_profile, а затем открыл настройки для приложения Mac Terminal и изменил параметр «Оболочка открывается с» по умолчанию на / bin / bash. Вот и все. Чисто и просто.
источник
открытый терминал, тип
затем добавьте этот текст в файл:
источник