Создание списка запуска Mac OS X для vpnd

3963
michaelmichael

Мне нужно создать plist launchd, который вызывает запуск vpnd при запуске. vpnd прекрасно работает, когда вызывается из командной строки, но я не могу понять, как создать 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> </array> <key>RunAtLoad</key> <true/> </dict> </plist> 

Запуск с ним не launchctl -wимеет никакого эффекта, не вызывает ошибок и ничего не выводит на консоль. XML выглядит правильно?

2
Это не отвечает на ваш вопрос, но вы пробовали лингон? Он не обновлялся в течение года, но все еще хорошо работает для 10.6. http://sourceforge.net/projects/lingon/files/ fideli 14 лет назад 1
на самом деле, это просто отлично. это прекрасно работает для моих нужд. Спасибо большое! michaelmichael 14 лет назад 0

2 ответа на вопрос

4
Steve Folly

Глядя на некоторые другие файлы plist в / System / Library / LaunchDaemons, ProgramArgumentsзапись кажется неправильной; вам нужен полный путь к программе здесь.

Выньте Programключ и попробуйте что-то вроде этого:

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

Кроме того, вы можете добавить KeepAliveключ.

man launchd.plist может помочь.

3

Я взял это с сервера 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> 

Похожие вопросы