Je me demandais dans quel fichier je devrais placer cette commande bash afin qu'elle soit exécutée au démarrage.
# Start the MongoDB server
/Applications/MongoDB/bin/mongod --dbpath /usr/local/mongo/data --fork --logpath /usr/local/mongo/log
Je suis déjà récurer le net et je pense qu'il est entre ~/.bashrc
, ~/profile
, /etc/bashrc
, /etc/profile
ou ~/.bash_profile
. Bien que j'ai essayé ces derniers et qu'ils semblent fonctionner au démarrage du terminal et non au démarrage de Mac . Est-ce qu'il me manque un fichier?
/etc
elle devrait être lancée au démarrage? Est-ce que cela importe dans quoi il se trouve?/etc/bashrc
et ainsi de suite sont exécutés lorsque vous démarrez un shell, juste comme~/.bashrc
- c'est juste que le précédent sera exécuté à chaque fois qu'un utilisateur démarrera un shell, plutôt que simplement votre utilisateur.Pour exécuter une commande au démarrage sous OS X, vous devez utiliser
launchd
.Si vous ne souhaitez pas utiliser Lingon , vous devez créer une
launchd
liste de propriétés. Il s’agit d’un fichier XML. Vous pouvez donc le faire avec votre éditeur de texte favori ou utiliser l’éditeur de liste de propriétés installé avec les outils de développement Mac OS X. Créez ce qui suit:Enregistrez ceci dans
/Library/LaunchAgents/some.meaningful.name.plist
(vous aurez besoin d’un compte administrateur et / ousudo
), puis ouvrez un terminal et faites:Cela obligera launchd à charger l'élément, ce qui entraînera le démarrage de MongoDB au démarrage. En bonus,
launchd
le surveillera et, s'il quitte pour une raison quelconque, il sera redémarré. Pour supprimer l'élément, il suffit de remplacer load dans la commande ci-dessus par unload.la source
<key>LaunchOnlyOnce</key><true/>
au dict.Une autre solution simple de Stack Overflow : Vous pouvez:
your_name.app
sera créé);Déconnectez-vous, reconnectez-vous et vous devriez avoir terminé. ;)
la source
Pour lancer des commandes lors de la connexion, vous pouvez procéder comme suit:
Créez un fichier texte contenant vos commandes (script bash):
Enregistrer ce fichier dans
~/Library/Startup.cmd
chmod +x ~/Library/Startup.cmd
la source
@reboot
. Cependant, ma réponse permettrait de démarrer un programme graphique, c'est pourquoi je pense que c'est utile.cmd
au lieu desh
?Vous devrez regarder comment
launchd
etlaunchctl
travailler sur MacOS. Vous pouvez commencer par lire les pages de manuel pour les deux commandes. Vous pouvez ensuite regarder à l'intérieur/Library/LaunchAgents/
et/Library/LaunchDaemons/
trouver des exemples de configuration des applications à charger à différents moments via l'launchctl
interface.Voici un exemple que j'ai trouvé sur Stack Overflow qui pourrait vous aider davantage.
la source
Si vous souhaitez une approche qui fonctionnera sous Linux et Mac OS X, une tâche périodique devrait suffire (modifiez vos tâches en exécutant
crontab -e
):(crédits: https://unix.stackexchange.com/questions/49207/how-do-i-set-a-script-that-it-will-run-start-up-in-freebsd )
la source
Une réponse unix très simple à ce problème m'intéressait et je l'ai trouvée sur un autre site . Voici un résumé de la solution.
La norme pour les shells de connexion est de toujours rechercher les fichiers de configuration bash avec "profile" dans le nom, dans cet ordre: / etc / profile, ~ / .bash_profile, puis ~ / .bash_login et enfin ~ / .profile. Lorsque les shells de connexion sont fermés, ils lisent ~ / .bash_logout.
Dans mon cas, je viens de créer le fichier ~ / .bash_profile, puis j'ai ouvert les préférences de l'application Mac Terminal et modifié l'option "Shell s'ouvre avec" de l'option par défaut en / bin / bash. C'est ça. Propre et simple.
la source
terminal ouvert, tapez
puis ajoutez ce texte au fichier:
la source