81 votes

Exécuter une commande au démarrage / à la connexion (Mac OS X)

Je me demandais dans quel fichier je devais placer cette commande bash pour qu'elle soit lancée au démarrage.

# Start the MongoDB server
/Applications/MongoDB/bin/mongod --dbpath /usr/local/mongo/data --fork --logpath /usr/local/mongo/log

J'ai parcouru le net et je pense que c'est entre ~/.bashrc , ~/profile , /etc/bashrc , /etc/profile o ~/.bash_profile . Bien que j'aie essayé ces derniers et qu'ils semblent fonctionner sur démarrage du terminal no Démarrage du Mac . Il me manque un fichier ?

3voto

ayaz Points 10158

Vous devrez examiner comment launchd y launchctl fonctionnent sur MacOS. Vous pouvez commencer par lire les pages de manuel des deux commandes. Vous pouvez ensuite regarder dans /Library/LaunchAgents/ y /Library/LaunchDaemons/ pour des exemples de la façon de configurer les applications pour qu'elles se chargent à des moments différents par le biais de l'outil de gestion de l'information. launchctl interface.

Voici un exemple que j'ai trouvé sur Stack Overflow qui pourrait vous aider davantage.

0voto

markgp Points 11

J'étais intéressé par une réponse unix très simple à ce problème et je l'ai trouvée sur un autre site. site . Voici un résumé de la solution.

La norme pour les shells de connexion est de toujours rechercher les fichiers de configuration bash dont le nom contient "profile", dans cet ordre : /etc/profile, ~/.bash_profile, puis ~/.bash_login et enfin ~/.profile. Lorsque les shells de connexion se terminent, ils lisent ~/.bash_logout.

Dans mon cas, j'ai juste créé le ~/.bash_profile et ensuite j'ai ouvert les préférences de l'application Mac Terminal et changé l'option "Shell s'ouvre avec" par défaut en /bin/bash. C'est tout. Propre et simple.

0voto

bobtho'-' Points 1

Vous pouvez utiliser crontab :

Tout d'abord, créez un script quelque part (disons /path/to/script.sh) et tapez la commande que vous voulez y exécuter. Ensuite, tapez chmod +x /path/to/script.sh .

Maintenant, dans le terminal :

EDITOR=nano crontab -e

Un éditeur de texte s'affiche dans le terminal.

Tapez dans le fichier :

@reboot /path/to/script.sh

Hit Ctrl + X , hit y et frappez enter et au prochain démarrage, cela fonctionnera !

Si vous vouliez exécuter une commande en arrière-plan, il suffit d'ajouter un & après la commande dans le script.

0voto

Sahil Bawa Points 1

Bien que je ne trouve pas acceptable les réponses qui vous demandent d'ajouter l'appel dans .bash_profile ou .bashrc, elles könnte travail imho.

Vous könnte Cliquez avec le bouton droit de la souris sur l'icône de votre terminal dans le Dock, puis sélectionnez Options > Ouvrir à la connexion.

J'ai une auto-login VPN script pour le travail. J'ai besoin d'ouvrir Terminal aussi quand je travaille. Donc je préfère qu'il se lance automatiquement au démarrage et j'ai utilisé .bashrc pour lancer mon script vpn automatiquement.

-4voto

MAX Points 1

Borne ouverte, type

nano ~/.bash_profile

puis ajoutez ce texte au fichier :

/Applications/MongoDB/bin/mongod --dbpath /usr/local/mongo/data --fork logpath /usr/local/mongo/log

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X