Sous OSX 10.10, j'ai créé un fichier plist dans /Library/LaunchDaemons/ pour lancer une connexion OpenVPN au démarrage. Cependant, j'ai rencontré des problèmes de DNS en passant d'une interface internet à une autre (comme le WiFi vers le réseau LAN) et j'ai pensé que je devais redémarrer mon démon OpenVPN avec launchctl pour résoudre le problème.
Mais avec cette méthode, je dois aller dans une console, taper une commande monstrueuse de launchctl avec sudo et, bien sûr, taper mon mot de passe d'administrateur.
Ce processus de saisie peut-il être automatisé ?
Modifier
Merci pour la réponse générale de @bmike qui ouvrira de nouveaux horizons et @Graham Miln bien que je ne sois pas fan d'AppleScript, mais comme @Mark l'a demandé voici mon .plist
fichier :
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>KeepAlive</key>
<true/>
<key>Label</key>
<string>net.openvpnd</string>
<key>ProgramArguments</key>
<array>
<string>/usr/sbin/openvpn</string>
<string>/a/path/to/file.ext</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>SuccessfullExit</key>
<true/>
<key>StandardErrorPath</key>
<string>/Library/Logs/ovpnerr.log</string>
<key>StandardOutPath</key>
<string>/Library/Logs/ovpn.log</string>
<key>EnvironmentVariables</key>
<dict>
<key>PATH</key>
<string>/usr/sbin:/another/path</string>
</dict>
</dict>
</plist>
1 votes
Comme le daemon s'exécute en tant que Root, vous devriez l'exécuter en tant que Root - solution simple : mettre la longue commande dans un alias de shell script. Cependant, dans ce cas, je pense que le démon ne devrait être exécuté qu'en cas de besoin et ne redémarrer qu'en cas de besoin - nous devons donc voir votre plist pour suggérer ce qu'il devrait être.
0 votes
J'ai répondu à la question générale - "quelles sont les options d'automatisation existantes" - n'hésitez pas à poser une question complémentaire avec les détails spécifiques mentionnés par @mark si vous avez besoin d'aide pour laisser launchd gérer le démarrage et l'arrêt pour vous de manière systématique.
0 votes
Ça sent comme un Problème X-Y . Mieux vaut corriger votre configuration OpenVPN/DNS.
0 votes
Bonjour @klanomath, je suis tout à fait d'accord mais je suis maintenant curieux de savoir comment redémarrer un démon Root sans privilèges d'administrateur. Je suis également impatient de connaître les moyens de résoudre mon problème X, pourriez-vous écrire une réponse ici ou dois-je poser une autre question ?