Existe-t-il un moyen, autre qu'un redémarrage, de forcer l'accès à l'Internet ? launchd
pour relire les variables d'environnement nouvellement définies dans /etc/launchd.conf
?
Peut-on le faire avec launchctl(1)
?
Existe-t-il un moyen, autre qu'un redémarrage, de forcer l'accès à l'Internet ? launchd
pour relire les variables d'environnement nouvellement définies dans /etc/launchd.conf
?
Peut-on le faire avec launchctl(1)
?
Il n'y a aucun moyen de le faire, "launchd" est le processus maître, l'équivalent de "init" dans d'autres systèmes Unix, le seul moyen pour tout autre démon serait d'effectuer une sorte de kill -HUP pour recharger les fichiers de configuration, etc, mais cette opération n'est pas autorisée sur launchd. Si vous regardez dans la table des processus, c'est le processus numéro 1, tous les autres processus en cours d'exécution sont d'une manière ou d'une autre des enfants de ce processus, de sorte qu'un redémarrage est le seul moyen d'y parvenir. Vous aurez peut-être plus de chance en définissant ces variables d'environnement dans un autre domaine plus enclin à autoriser les redémarrages.
Dans-iMac:etc stuffe$ ps -ef | grep launchd | grep -v grep
0 1 0 0 9:40am ?? 0:09.47 /sbin/launchd
65 18 1 0 9:40am ?? 1:53.64 /usr/sbin/mDNSResponder -launchd
213 73 1 0 9:41am ?? 0:02.55 /System/Library/PrivateFrameworks/MobileDevice.framework/Versions/A/Resources/usbmuxd -launchd
0 85 1 0 9:41am ?? 0:00.08 /System/Library/CoreServices/ODSAgent.app/Contents/MacOS/ODSAgent -launchd
89 230 1 0 9:41am ?? 0:00.01 /sbin/launchd
501 238 1 0 9:41am ?? 0:00.23 /sbin/launchd
501 933 238 0 10:53am ?? 0:00.01 /System/Library/CoreServices/AirPort Base Station Agent.app/Contents/MacOS/AirPort Base Station Agent -launchd -allowquit
EDIT :
Bien sûr, il manque la solution évidente qui consiste à ajouter les variables pertinentes dans le fichier de configuration, puis à exécuter les commandes manuellement afin d'échapper à la nécessité d'un redémarrage, mais rien n'indique que seuls les programmes nouvellement lancés prendront en compte les changements. J'ai trouvé cette qui l'explique plus en détail :
Les variables d'environnement définies dans launchd seront disponibles pour tous les programmes du système. Cependant, comme $HOME/.launchd.conf n'est pas pas pris en charge, cette approche est utilisée pour les variables d'environnement globales uniquement.
Le fichier /etc/launchd.conf contient une liste de commandes à exécuter par launchctl lors du démarrage. Toutefois, les variables d'environnement définies dans le fichier /etc/launchd.conf ne peuvent pas contenir d'espaces et ne peuvent pas faire référence à d'autres variables d'environnement. d'environnement ; launchctl, lorsqu'il est exécuté dans Terminal, ne souffre pas de ces ne souffre pas de ces limitations. Notez que le fichier /etc/launchd.conf n'existe pas par défaut. par défaut, nous devrons donc le créer.
Un redémarrage est nécessaire pour charger le contenu de /etc/launchd.conf. Cependant, si vous exécutez la commande correspondante Terminal, vous pouvez éviter le redémarrage. Rappelez-vous que si vous n'exécutez que les commandes launchctl, et ne mettez pas les entrées dans le fichier /etc/launchd.conf, il ne persistera pas après le redémarrage.
Si vous souhaitez disposer d'une variable d'environnement à l'échelle du système qui utilise la fonction ou dépendre d'une autre variable d'environnement, vous pouvez utiliser la commande les commandes launchctl dans l'un des fichiers que Terminal lit. Vous devrez devrez quitter et relancer Terminal pour accéder aux nouvelles variables.
Oui, vous pouvez utiliser launchctl pour les ajouter pour vous.
par exemple à partir du terminal :
grep -E "^setenv" /etc/launchd.conf | xargs -t -L 1 launchctl
sur ma machine :
launchctl setenv _JAVA_OPTIONS -Djava.net.preferIPv4Stack=true
launchctl setenv JMETER_HOME /Applications/apache-jmeter-2.10
lauchctl setenv GRADLE_HOME /usr/local/gradle-2.0
Vous pouvez ensuite redémarrer l'application qui en a besoin.
LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.