Ich habe mich gefragt, in welcher Datei ich diesen Bash-Befehl ablegen soll, damit er beim Start ausgeführt wird.
# Start the MongoDB server
/Applications/MongoDB/bin/mongod --dbpath /usr/local/mongo/data --fork --logpath /usr/local/mongo/log
Ich habe Scheuern im Netz und denke , es ist zwischen ~/.bashrc
, ~/profile
, /etc/bashrc
, /etc/profile
oder ~/.bash_profile
. Obwohl ich diese ausprobiert habe und sie beim Terminal-Start zu laufen scheinen, nicht beim Mac-Start . Vermisse ich eine Datei?
/etc
, sollte er beim Booten ausgeführt werden? Ist es wichtig, in welcher?/etc/bashrc
und so weiter werden ausgeführt, wenn Sie eine Shell starten, genau wie~/.bashrc
- es ist nur so, dass die erstere ausgeführt wird, wenn ein Benutzer eine Shell startet, und nicht nur Ihr Benutzer.Um einen Befehl beim Start unter OS X auszuführen, müssen Sie verwenden
launchd
.Wenn Sie Lingon nicht verwenden möchten , müssen Sie eine
launchd
Eigenschaftsliste erstellen . Da es sich um eine XML-Datei handelt, können Sie sie mit Ihrem bevorzugten Texteditor ausführen oder den Eigenschaftenlisten-Editor verwenden, der mit den Mac OS X-Entwicklungstools installiert wurde. Erstellen Sie Folgendes:Speichern Sie dies in
/Library/LaunchAgents/some.meaningful.name.plist
(Sie benötigen ein Administratorkonto und / odersudo
), öffnen Sie dann ein Terminal und führen Sie Folgendes aus:Dies bewirkt, dass launchd das Element lädt, wodurch MongoDB beim Booten gestartet wird. Als Bonus
launchd
wird es überwacht und, falls es aus irgendeinem Grund beendet wird, neu gestartet. Um den Gegenstand loszuwerden, ersetzen Sie einfach load im obigen Befehl durch unload.quelle
<key>LaunchOnlyOnce</key><true/>
das Diktat.Eine weitere einfache Lösung von Stack Overflow : Sie können:
your_name.app
wird erstellt);Melden Sie sich ab, melden Sie sich wieder an, und Sie sollten fertig sein. ;)
quelle
So starten Sie Befehle beim Anmelden:
Erstellen Sie eine Textdatei mit Ihren Befehlen (Bash-Skript):
Speichern Sie diese Datei in
~/Library/Startup.cmd
chmod +x ~/Library/Startup.cmd
quelle
@reboot
. Wie auch immer meine Antwort es erlauben würde, ein grafisches Programm zu starten, deshalb halte ich es für nützlich.cmd
stattsh
?Sie müssen sich ansehen, wie
launchd
und wie Sielaunchctl
unter MacOS arbeiten. Sie könnten damit beginnen, die Manpages für beide Befehle zu lesen. Sie können dann nachschauen/Library/LaunchAgents/
und/Library/LaunchDaemons/
nach Beispielen suchen, wie Sie Anwendungen so einrichten, dass sie zu unterschiedlichen Zeiten über dielaunchctl
Benutzeroberfläche geladen werden.Hier ist ein Beispiel, das ich bei Stack Overflow gefunden habe und das Ihnen weiterhelfen könnte.
quelle
Wenn Sie einen Ansatz suchen, der unter Linux und Mac OS X funktioniert, sollte ein Cron-Task ausreichen (bearbeiten Sie Ihre Cron-Tasks, indem Sie Folgendes ausführen
crontab -e
):(Credits: https://unix.stackexchange.com/questions/49207/how-do-i-set-a-script-that-it-will-run-on-start-up-in-freebsd )
quelle
Ich war an einer sehr einfachen Unix-Antwort auf dieses Problem interessiert und fand sie an einer anderen Stelle . Hier ist eine Zusammenfassung der Lösung.
Der Standard für Login-Shells ist, immer nach den Bash-Konfigurationsdateien mit dem Namen "profile" in der folgenden Reihenfolge zu suchen: / etc / profile, ~ / .bash_profile, dann ~ / .bash_login und zuletzt ~ / .profile. Wenn Login-Shells beendet werden, lesen sie ~ / .bash_logout.
In meinem Fall habe ich gerade das ~ / .bash_profile erstellt und dann die Einstellungen für die Mac-Terminal-App geöffnet und die Option "Shell wird geöffnet mit" von "Standard" in "/ bin / bash" geändert. Das ist es. Sauber und einfach.
quelle
offenes Terminal, Typ
Fügen Sie dann diesen Text zur Datei hinzu:
quelle