1 votes

Vous voulez lancer dnsmasq uniquement lorsque l'Ethernet Thunderbolt est actif.

Dnsmasq est installé en utilisant homebrew. Actuellement, dnsmasq spamme mon system.log avec des messages comme celui-ci :

Sep 26 18:22:46 Laptop com.apple.xpc.launchd[1] (homebrew.mxcl.dnsmasq[14526]): Service exited with abnormal code: 2
Sep 26 18:22:46 Laptop com.apple.xpc.launchd[1] (homebrew.mxcl.dnsmasq): Service only ran for 0 seconds. Pushing respawn out by 10 seconds.
Sep 26 18:22:56 Laptop com.apple.xpc.launchd[1] (homebrew.mxcl.dnsmasq[14527]): Service exited with abnormal code: 2
Sep 26 18:22:56 Laptop com.apple.xpc.launchd[1] (homebrew.mxcl.dnsmasq): Service only ran for 0 seconds. Pushing respawn out by 10 seconds.
Sep 26 18:23:06 Laptop com.apple.xpc.launchd[1] (homebrew.mxcl.dnsmasq[14528]): Service exited with abnormal code: 2
Sep 26 18:23:06 Laptop com.apple.xpc.launchd[1] (homebrew.mxcl.dnsmasq): Service only ran for 0 seconds. Pushing respawn out by 10 seconds.
Sep 26 18:23:16 Laptop com.apple.xpc.launchd[1] (homebrew.mxcl.dnsmasq[14529]): Service exited with abnormal code: 2
Sep 26 18:23:16 Laptop com.apple.xpc.launchd[1] (homebrew.mxcl.dnsmasq): Service only ran for 0 seconds. Pushing respawn out by 10 seconds.

parce que j'ai dit à dnsmasq d'utiliser uniquement l'adaptateur Thunderbolt Ethernet et quand cet adaptateur n'est pas actif, dnsmasq ne peut pas le trouver, donc il ne peut pas démarrer le service.

Je veux exécuter le service dnsmasq UNIQUEMENT lorsque l'adaptateur Thunderbolt Ethernet est actif. Je NE PEUX PAS l'exécuter sur toutes les interfaces.

Mon plist actuel ressemble à ceci :

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
  <dict>
    <key>Label</key>
    <string>homebrew.mxcl.dnsmasq</string>
    <key>ProgramArguments</key>
    <array>
      <string>/usr/local/opt/dnsmasq/sbin/dnsmasq</string>
      <string>--keep-in-foreground</string>
      <string>-C</string>
      <string>/usr/local/etc/dnsmasq.conf</string>
    </array>
    <key>Requires</key>
    <array>
      <string>Network</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
    <key>KeepAlive</key>
    <true/>
  </dict>
</plist>

Je ne trouve aucune documentation sur la manière de lancer dnsmasq UNIQUEMENT lorsqu'une certaine carte réseau est active. Avez-vous des idées ?

1voto

JT. Points 394

Pas possible....

Desde https://developer.apple.com/library/content/documentation/MacOSX/Conceptual/BPSystemStartup/Chapters/Introduction.html

Disponibilité du réseau Si votre démon dépend de la disponibilité du réseau, cela ne peut pas être géré avec les dépendances car les interfaces réseau peuvent aller et venir à tout moment dans OS X. Pour résoudre ce problème, vous devez utiliser la fonctionnalité d'accessibilité au réseau ou la fonctionnalité de stockage dynamique dans le cadre de la configuration du système. Ces fonctionnalités sont documentées dans les directives de programmation de System Configuration et dans la référence du framework System Configuration. Pour plus d'informations sur l'accessibilité du réseau, reportez-vous à la section Détermination de l'accessibilité et établissement de la connexion dans le guide de programmation de System Configuration.

LesApples.com

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.

Powered by:

X