comment exécuter automatiquement un fichier shell à l'ouverture d'une session ?

Pour ajouter des variables d'environnement.

iMac 27″, macOS 15.2

Publiée le 8 mai 2025 à 12h02

Répondre
Question marquée comme Réponse la mieux classée

Publiée le 28 mai 2025 à 05h56

Par défaut, le shell zsh est actif. Après consultation de la page Utiliser zsh comme shell par défaut sur votre Mac - Assistance Apple (FR j'ai donc crée le fichier .zprofile (sous mon répertoire HOME). Miracle les nouvelles variables et la modification du PATH sont bien effectuées.


11 réponses
Question marquée comme Réponse la mieux classée

Le 28 mai 2025 à 05h56 en réponse à TCLVSF

Par défaut, le shell zsh est actif. Après consultation de la page Utiliser zsh comme shell par défaut sur votre Mac - Assistance Apple (FR j'ai donc crée le fichier .zprofile (sous mon répertoire HOME). Miracle les nouvelles variables et la modification du PATH sont bien effectuées.


Le 8 mai 2025 à 12h16 en réponse à TCLVSF

Bonjour TCLVSF,


Vous pouvez ajouter votre script aux éléments d'ouverture : Ouvrir automatiquement des éléments lors de l’ouverture de session sur Mac - Assistance Apple (FR).


Ceci dit, je ne suis pas sûr de ce que vous tentez de faire avec les variables d'environnement. Normalement, celles-ci sont sauvegardées si vous les ajoutez manuellement.

Le 8 mai 2025 à 22h52 en réponse à TCLVSF

Bonjour TCLVSF,


Sur macOS, les variables d’environnement sont principalement utilisées dans les sessions shell (Terminal), mais elles peuvent être lues ailleursselon le contexte et la façon dont elles sont définies.

Quand tu ouvres Terminal, tu as une session de shell (zsh, bash, etc.). Les variables d’environnement sont alors :

  • définies dans des fichiers comme ~/.zshrc, ~/.bash_profile, etc.
  • disponibles uniquement dans cette session shell (et ses sous-processus).


En dehors du shell ? ... C’est là que ça devient subtil!

Applications GUI (comme Safari, Xcode, etc.)

  • Ne lisent pas automatiquement les variables d’un fichier comme .zshrc ou .bash_profile.
  • Ces apps sont lancées par le système (launchd) au démarrage, avec un environnement différent du shell.


➤ Pour que les variables soient visibles par les apps GUI, tu dois les déclarer au niveau du système, par exemple :

  • Launchctl (launchd user context) :

Tu peux définir une variable d’environnement pour les apps GUI avec launchctl setenv NOM_VARIABLE valeur

Cela affectera les applications lancées après la commande, pas celles déjà ouvertes.

  • Fichier ~/.MacOSX/environment.plist (⚠️ obsolète depuis macOS 10.5)
  • Via un agent LaunchAgent personnalisé : Tu peux créer un plist dans ~/Library/LaunchAgents pour lancer une app avec des variables définies.


Méthode fiable : launchctl setenv via un LaunchAgent personnalisé

1. Crée le dossier (s’il n’existe pas) : mkdir -p ~/Library/LaunchAgents

2. Copie-Colle ce code plus bas en l'adaptant à ta ou tes variables

Tu peux créer un fichier .plist par variable, ou regrouper plusieurs appels dans un script shell.

3. Charge l'agent ou redémarre ta session : launchctl load ~/Library/LaunchAgents/environment.setenv.plist

4. Verifie que ta variable est bien définie : launchctl getenv MON_VARIABLE


Cdlmt,


Le 15 mai 2025 à 10h57 en réponse à 6x6

Merci pour votre réponse.

En fait, j’essaie de suivre la procédure pour l’utilisation du SDK de libre office

(LibreOffice24.8_SDK) (et JDK)

Ceci de manière ludique et sporadique avec de toute évidence des connaissances insuffisantes…


J’ai donc ajouté à l’ouverture de la session un fichier shell qui s’ouvre en édition sans être automatiquement éxécuté.

Le 23 mai 2025 à 10h14 en réponse à Utilisateur de la communauté

J'ai ajouté la permission x pour les deux derniers groupes. Malheureusement, à l'ouverture de la session, le(s) fichier(s) s'ouvrent toujours en édition. Pour la proposition "HervéF91" bien que vu du iMAC je suis administrateur, je n'ai entre autre pas l'accès en "écriture" sur le répertoire (existant) /Library/LaunchAgents ni aux fichiers .plist. Propriété de "système" ("wheel" et "everyone" en lecture uniquement.)

Le 27 mai 2025 à 02h27 en réponse à Utilisateur de la communauté

Merci encore pour votre aide.

C’est bon pour l’ajout de variables d’environnement. Malheureusement il reste le cas non pas de création, de modification de variable. (PATH) 

J’apprends de nouvelles choses et me rappelle des notions enfouis depuis bien longtemps (début des années 90). 

De mon coté, je poursuis ma recherche.


Le 15 mai 2025 à 11h22 en réponse à TCLVSF

Bonjour TCLVSF


Pour rendre exécutable votre fichier shell, vous devez lui donner les droits d'exécution:

Ouvrez le Terminal:

Saisissez : chmod +x [chemin + nom du fichier.sh]. ou


Tapez 'chmod +x ' et glissez votre fichier (laissez bien un espace après le x)


Cdlmt,


Le 23 mai 2025 à 10h43 en réponse à TCLVSF

Bonsoir TCLVSF,


Le répertoire /Libray/LaunchAgents/ est effectivement réservé au système.

Il existe un répertoire identique dans votre HomeDirectory ( ~/Library/LaunchAgents ) dans lequel vous avez les droits pleins (accès en lecture ET écriture) .. puisque vous en êtes le propriétaire. A plus forte raison si vous êtes administrateur de votre iMac.

C'est lui qui contient vos fichiers de démarrage.

Vous pouvez y déposer les fichiers .plist par un simple Drag&Drop / Glisser-Deposer)

Pour accéder à ce répertoire depuis votre session GUI , développez le menu Aller en maintenant la touche 'Option' enfoncée, puis choisissez 'Bibliothèque'


Cdlmt,

Cette discussion a été fermée par le système ou l’équipe de la communauté. Vous pouvez voter pour les publications que vous jugez utiles ou effectuer des recherches dans la communauté pour trouver des réponses supplémentaires.

comment exécuter automatiquement un fichier shell à l'ouverture d'une session ?

Bienvenue dans la Communauté d’assistance Apple
Un forum où les clients Apple s’entraident avec leurs produits. Faites vos premiers pas avec votre compte Apple.