Zastanawiałem się, w którym pliku powinienem umieścić to polecenie bash, aby zostało uruchomione podczas uruchamiania.
# Start the MongoDB server
/Applications/MongoDB/bin/mongod --dbpath /usr/local/mongo/data --fork --logpath /usr/local/mongo/log
I zostały szorowania netto i myślę, że jest pomiędzy ~/.bashrc
, ~/profile
, /etc/bashrc
, /etc/profile
lub ~/.bash_profile
. Chociaż próbowałem tych i wydają się działać na starcie terminala, a nie na starcie Maca . Czy brakuje mi pliku?
/etc
, powinno być uruchamiane podczas uruchamiania? Czy to ważne, w jakim jest?/etc/bashrc
i tak dalej są uruchamiane przy uruchamianiu powłoki, tak jak~/.bashrc
- po prostu ta pierwsza będzie uruchamiana za każdym razem, gdy dowolny użytkownik uruchomi powłokę, a nie tylko użytkownik.Aby uruchomić polecenie przy uruchamianiu w systemie OS X, musisz użyć
launchd
.Jeśli nie chcesz korzystać z Lingon , musisz utworzyć listę
launchd
właściwości. Jest to plik XML, więc możesz to zrobić za pomocą swojego ulubionego edytora tekstów lub alternatywnie możesz użyć Edytora list właściwości, który jest zainstalowany z narzędziami programistycznymi Mac OS X. Utwórz następujące elementy:Zapisz to w
/Library/LaunchAgents/some.meaningful.name.plist
(będziesz potrzebować konta administratora i / lubsudo
), a następnie otwórz terminal i wykonaj:Spowoduje to, że uruchomione zostanie załadować element, co spowoduje uruchomienie MongoDB podczas rozruchu. Jako bonus,
launchd
będzie go monitorować, a jeśli wyjdzie z jakiegokolwiek powodu, zostanie ponownie uruchomiony. Aby pozbyć się przedmiotu, po prostu zastąp load w powyższym poleceniu unload.źródło
<key>LaunchOnlyOnce</key><true/>
do dykta.Kolejne proste rozwiązanie z przepełnienia stosu : Możesz:
your_name.app
zostanie utworzony plik o nazwie );Wyloguj się, zaloguj ponownie i powinieneś to zrobić. ;)
źródło
Aby uruchomić polecenia podczas logowania, możesz to zrobić:
Utwórz plik tekstowy zawierający twoje polecenia (skrypt bash):
Zapisz ten plik w
~/Library/Startup.cmd
chmod +x ~/Library/Startup.cmd
źródło
@reboot
. Jednak moja odpowiedź pozwoliłaby uruchomić program graficzny, dlatego uważam, że jest przydatny.cmd
zamiastsh
?Będziesz musiał sprawdzić, jak
launchd
ilaunchctl
pracować na MacOS. Możesz zacząć od przeczytania stron podręcznika dla obu poleceń. Następnie możesz zajrzeć do środka/Library/LaunchAgents/
i zobaczyć/Library/LaunchDaemons/
przykłady konfigurowania aplikacji do ładowania w różnym czasie przezlaunchctl
interfejs.Oto przykład, który znalazłem na stosie przepełnienia, który może ci pomóc.
źródło
Jeśli chcesz zastosować podejście, które będzie działać w systemach Linux i Mac OS X, zadanie cron powinno wystarczyć (edytuj swoje zadania cron, wykonując
crontab -e
):(kredyty: https://unix.stackexchange.com/questions/49207/how-do-i-set-a-script-that-it-will-run-on-start-up-in-freebsd )
źródło
Byłem zainteresowany bardzo prostą odpowiedzią uniksową na ten problem i znalazłem ją w innej witrynie . Oto podsumowanie rozwiązania.
Standardem dla powłok logowania jest zawsze szukanie plików konfiguracyjnych bash z „profil” w nazwie, w następującej kolejności: / etc / profile, ~ / .bash_profile, następnie ~ / .bash_login i wreszcie ~ / .profile. Kiedy powłoki logowania wychodzą, czytają ~ / .bash_logout.
W moim przypadku właśnie utworzyłem ~ / .bash_profile, a następnie otworzyłem preferencje dla aplikacji Mac Terminal i zmieniłem opcję „Powłoka otwiera się” z domyślnej na / bin / bash. Otóż to. Czysty i prosty.
źródło
otwórz terminal, wpisz
następnie dodaj ten tekst do pliku:
źródło