Si vous avez modifié la configuration d’un service Homebrew et avez besoin qu’elle prenne effet, redémarrez ce service par son nom de formule : brew services restart formula. Par exemple, utilisez brew services restart postgresql@16 s’il s’agit de la formule que vous avez installée. Homebrew arrête le service si nécessaire, le relance et l’enregistre pour qu’il démarre à la connexion. Vérifiez ensuite la liste des services pour confirmer l’état rapporté.
Avant de redémarrer, identifiez le service et la configuration
Les services Homebrew gèrent les processus en arrière-plan via launchctl de macOS. Sans sudo, Homebrew agit sur les LaunchAgents de l’utilisateur actuel, qui sont destinés à démarrer à la connexion. Avec sudo, il agit sur les LaunchDaemons du système, qui sont destinés à démarrer au démarrage de la machine. La référence brew services de Homebrew documente cette distinction ; utilisez donc le même niveau de privilèges que celui utilisé lors du démarrage initial du service. Basculer entre les contextes utilisateur et root peut vous amener à inspecter ou à modifier un enregistrement de service différent.
Si vous n’êtes pas sûr du nom de la formule, listez les services que Homebrew gère pour votre utilisateur actuel :
brew services list
La liste peut afficher le nom du service, son statut, l’utilisateur et le chemin du fichier plist. Utilisez le nom de formule qui y figure dans la commande de redémarrage. Évitez --all à moins que vous n’ayez l’intention de redémarrer tous les services gérés, car cela affectera d’autres services que celui dont vous avez modifié la configuration. La référence documente également brew services list --debug pour obtenir des sorties supplémentaires de Homebrew et de launchctl lors du dépannage.
Appliquez la modification avec brew services restart
Exécutez le redémarrage dans le Terminal sous le même compte macOS que celui qui exécute le service :
brew services restart postgresql@16
Remplacez postgresql@16 par la formule trouvée dans la liste des services. Le nom versionné n'est qu'un exemple. Homebrew définit restart comme le fait d'arrêter le service si nécessaire et de le démarrer immédiatement, tout en l'enregistrant pour qu'il se lance à la connexion (ou au démarrage du système lorsqu'il est utilisé avec sudo). Cela rend le redémarrage approprié lorsqu'un service en cours d'exécution doit recharger sa configuration. La référence des commandes détaille ce comportement ainsi que les options facultatives --all et --file.
N'ajoutez pas sudo de manière automatique. Ne l'utilisez que si le service a été délibérément enregistré en tant que service système et que vous avez l'intention de gérer l'enregistrement au niveau root. Sinon, sudo risque de cibler un LaunchDaemon différent, et le service au niveau utilisateur peut ne pas être affecté. Si vous souhaitez simplement qu'un processus s'exécute une seule fois sans l'enregistrer pour qu'il se lance à la connexion, Homebrew documente brew services run formula ; cette commande ne remplace pas un redémarrage pour un service qui est censé rester géré.
Vérifiez le résultat et dépannez un échec de redémarrage
Une fois la commande terminée, consultez à nouveau la liste des services gérés :
brew services list
Vérifiez que la formule ciblée apparaît avec le statut démarré (« started ») et examinez son utilisateur ainsi que le chemin du plist. Le statut « started » confirme que Homebrew signale qu'il est démarré ; cela ne prouve pas de manière indépendante que l'application a accepté les nouveaux paramètres ou qu'elle répond aux requêtes. Vérifiez l'application à l'aide de sa propre procédure de vérification d'état documentée ou en testant le comportement contrôlé par le paramètre modifié.
Si le service ne démarre pas, exécutez la commande de liste avec --debug et lisez les sorties d'erreur ou les journaux propres au service avant d'effectuer d'autres modifications. Vérifiez la syntaxe de configuration de l'application, les permissions de fichiers et les chemins par rapport à la documentation de cette application. La commande de service de Homebrew lance le service à l'aide de sa définition de service ; elle ne valide pas chaque option de configuration propre à l'application. Évitez de modifier les fichiers plist générés en guise de première solution : le mécanisme de configuration documenté par Homebrew dépend du paramètre que vous devez modifier.
Lorsque la modification concerne une variable d'environnement
Si votre modification concerne une variable d'environnement pour le service, Homebrew documente un fichier d'environnement dédié par formule. Par défaut, placez-le sous ~/.homebrew/services/formula.env ; si HOMEBREW_USER_CONFIG_HOME est défini, le répertoire est $HOMEBREW_USER_CONFIG_HOME/services. Utilisez une affectation KEY=value par ligne, avec # au début d'une ligne de commentaire. Redémarrez ensuite le service ; Homebrew indique que ces valeurs prennent effet au prochain redémarrage et persistent lors des mises à niveau. Consultez les instructions relatives à l'environnement de service dans la référence de Homebrew.
Par exemple, le format de fichier documenté est KEY=value, mais le nom de la variable et sa valeur doivent provenir de la documentation de l'application. Ne supposez pas que chaque application accepte des variables d'environnement arbitraires, et ne collez pas de données sensibles dans un fichier d'environnement sans vous soucier de qui peut le lire. Si votre modification de configuration est un fichier de configuration d'application plutôt qu'une variable d'environnement, modifiez l'emplacement de fichier spécifié par cette application, puis utilisez la même commande de redémarrage.
La séquence fiable est la suivante : identifiez la formule exacte et le contexte de service, modifiez le paramètre à l'emplacement spécifié par la documentation de l'application ou de Homebrew, redémarrez cette seule formule, et vérifiez à la fois le statut dans Homebrew et le comportement de l'application.
Sources
- Manpage.md — Homebrew