Questão Criando um plish launchd do Mac OS X para vpnd


Eu preciso criar um plad launchd que faça com que o vpnd seja iniciado na inicialização. vpnd funciona bem quando invocado a partir da linha de comando, mas não consigo descobrir como fazer um plist que faça a mesma coisa. Alguém pode ajudar? Aqui está o que eu montei até agora:

<?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>

Correndo com launchctl -w não tem efeito, dispara sem erros e não produz nada para o console. O XML parece certo?


2


origem


Isso não responde à sua pergunta, mas você já tentou o Lingon? Não foi atualizado por um ano, mas ainda funciona bem para 10,6. sourceforge.net/projects/lingon/files - fideli
na verdade, isso é ótimo. funciona perfeitamente para as minhas necessidades. muito obrigado! - michaelmichael


Respostas:


Eu peguei isso de um servidor 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>

3





Olhando para alguns outros arquivos plist em / System / Library / LaunchDaemons, o ProgramArguments a entrada parece errada; você precisa do caminho completo do programa aqui.

Remova o Program chave e tente algo como isto:

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

Além disso, você pode querer adicionar um KeepAlive chave também.

man launchd.plist pode ajudar.


4