2

Мне нужно создать 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 ответа2

4

Глядя на некоторых других 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>

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .