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?

michaelmichael
la source
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>

la source
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.

Steve Folly
la source