Как сделать так, чтобы программа автоматически запускалась в OSX? - PullRequest
6 голосов
/ 01 октября 2008

У меня есть небольшая программа, которую я хочу открыть автоматически при запуске моего Mac.

Поскольку эта программа принимает аргументы командной строки, это не так просто, как просто перейти к элементам System Prefs / Accounts / Login и добавить их туда ...

Из Google я прочитал, что я могу создать файл .profile в домашней папке моего пользователя, и он будет выполнять все, что я в него вставлю ... Итак, у меня есть страница .profile в ~ примерно так:

-rw-r - r - @ 1 матовый посох 27 27 сен 13:36 .profile

Это содержит это ...

/ Приложения / mousefix 3.5

Но он не запускается при запуске! Если я ввожу "/ Applications / mousefix 3.5" вручную в терминал, он работает.

Есть идеи?

Ответы [ 7 ]

11 голосов
/ 01 октября 2008

Отсюда и в будущее посмотрите в launchd, что вы хотите сделать. Все остальные методы устарели или теперь не поддерживаются. Это, вероятно, немного тяжелее, чем вы хотите.

Также может быть проблема с вашей версией оболочки bash, неправильно выполняющей ваш .profile. Попробуйте поместить команду в .bashrc в вашем домашнем каталоге, и посмотрите, поможет ли это.

4 голосов
/ 01 октября 2008

Вы можете использовать Lingon , чтобы помочь создать файл plist для launchd.

3 голосов
/ 01 октября 2008

Самый общий способ запуска вещей при запуске в MacOS - это launchd . Вы можете создать файл plist, чтобы сообщить ему о запуске вашей программы при запуске, который может содержать аргументы.

1 голос
/ 02 октября 2008

.profile и .bash_profile вступают в игру только при открытии новой оболочки (т. Е. При открытии Терминала или при входе через SSH). Кроме того, я считаю, что если bash обнаружит .bash_profile, он не будет искать .profile
Если вы хотите, чтобы он запускался при входе в систему, я бы посмотрел другие предложения по launchd

1 голос
/ 01 октября 2008

Вы можете использовать Applescript, который может запускать команды терминала, а затем запускать appleScript при запуске.

0 голосов
/ 01 октября 2008

Спасибо всем. Решение launchd довольно крутое, да, оно тяжеловесное для такой простой вещи, но его полезно знать, и как разработчик я рад повозиться с ним:)

0 голосов
/ 01 октября 2008

Вы всегда можете написать скрипт-обертку, который запускает его с нужными аргументами

...