Créer une plist de lancement pour Mac OS X pour vpnd


2

J'ai besoin de créer une liste de lancement qui provoque le lancement de vpnd au démarrage. vpnd fonctionne bien lorsqu'il est appelé à partir de la ligne de commande, mais je ne vois pas comment créer un plist qui fasse la même chose. Quelqu'un peut-il aider? Voici ce que j'ai pavé jusqu'à présent:

<?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>com.apple.ppp.l2tp</string>
 <key>OnDemand</key>
 <false/>
 <key>Program</key>
  <string>/usr/sbin/vpnd</string>
 <key>ProgramArguments</key>
  <array>
   <string>vpnd</string>
  </array>
 <key>RunAtLoad</key>
 <true/>
</dict>
</plist>

L'exécuter avec launchctl -w n'a aucun effet, ne déclenche aucune erreur et ne renvoie rien à la console. Le XML est-il correct?


1
Cela ne répond pas à votre question, mais avez-vous essayé Lingon? Il n'a pas été mis à jour depuis un an mais fonctionne toujours bien pour 10,6. sourceforge.net/projects/lingon/files
fideli

en fait, c'est très bien. cela fonctionne parfaitement pour mes besoins. Merci beaucoup!
michaelmichael

Réponses:


3

J'ai saisi ceci d'un serveur 10.4 ...

/System/Library/LaunchDaemons/com.apple.ppp.l2tp.plist

<?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>com.apple.ppp.l2tp</string>
    <key>OnDemand</key>
    <false/>
    <key>Program</key>
    <string>/usr/sbin/vpnd</string>
    <key>ProgramArguments</key>
    <array>
        <string>vpnd</string>
        <string>-x</string>
        <string>-i</string>
        <string>com.apple.ppp.l2tp</string>
    </array>
    <key>ServiceIPC</key>
    <false/>
</dict>
</plist>

4

En regardant quelques autres fichiers plist dans / System / Library / LaunchDaemons, le ProgramArguments l'entrée semble avoir tort; vous avez besoin du chemin complet du programme ici.

Retirer le Program clé et essayez quelque chose comme ça:

<key>ProgramArguments</key>
<array>
        <string>/usr/sbin/vpnd</string>
</array>

Aussi, vous voudrez peut-être ajouter un KeepAlive clé aussi.

man launchd.plist peut aider.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.