MacOS Sierra Launch Daemon no iniciará el servicio VPN antes del inicio de sesión

2

Estoy intentando que un nuevo MacBook Pro ejecute la última versión de Sierra para conectarse a mi VPN corporativo antes de la pantalla de inicio de sesión. Mi máquina está conectada a través de Ethernet, por lo que no tengo que intentar iniciar el servicio Wi-Fi antes de iniciar sesión. Mi script de línea de comandos para conectarse a la VPN funciona bien en el terminal. Sé que el archivo debe colocarse en / Library / LaunchDaemons / pero no estoy seguro de cómo asegurarme de que se esté procesando antes de llegar a la pantalla de inicio de sesión. Soy nuevo en escribir archivos plist, por lo que cualquier ayuda sería apreciada!

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"                         
    "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <plist version="1.0">
<dict>
<key>Label</key>
<string>com.vpn_at_boot</string>
<key>ProgramArguments</key>
<array>
    <string>sh</string>
    <string>-c</string>
    <string>sudo /usr/local/Cellar/sstp-client/1.0.11_1/sbin/sstpc vpn-hidden.hidden.com --user <hidden> --password <hidden> --log-stderr --cert-warn require-mschap-v2 noauth refuse-eap noccp</string>
</array>
<key>RunAtLoad</key>
<true/>

    
pregunta Darren Mason 09.06.2017 - 01:09

2 respuestas

1

Su lista contiene errores mayores y fallas menores. La lista correcta, incluidos stderr y stdout, se ve así:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>com.vpn_at_boot</string>
    <key>ProgramArguments</key>
    <array>
        <string>/bin/sh</string>
        <string>-c</string>
        <string>/usr/local/sbin/sstpc vpn-redacted.redacted.com --user redacted --password redacted --log-stderr --cert-warn require-mschap-v2 noauth refuse-eap noccp</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
    <key>StandardErrorPath</key>
    <string>/tmp/com.vpn_at_boot.err</string>
    <key>StandardOutPath</key>
    <string>/tmp/com.vpn_at_boot.out</string>
</dict>
</plist>

Reemplace redacted con el nombre de dominio, usuario y contraseña adecuados en su lista.

Su plist pierde etiquetas importantes (por ejemplo, </dict> y </plist> ). Contiene cosas innecesarias como sudo . El sstp-client puede actualizarse más tarde, así que use su enlace en / usr / local / sbin. También recomiendo agregar / usr / local / sbin a / etc / paths.

Los permisos de plist tienen que verse así:

-rw-r--r--  1 root  wheel  - 682 Jun  9 13:38 /Library/LaunchDaemons/com.vpn_at_boot.plist

Después de ejecutar el demonio con éxito (es decir, sin errores) puede eliminar las claves StandardErrorPath y StandardOutPath y sus cadenas correspondientes en el plist.

    
respondido por el klanomath 09.06.2017 - 13:49
0

Una vez que tu lista esté en el lugar correcto, /Library/LaunchDaemons , debería estar bien.

LaunchAgents y LaunchDaemons no son fáciles de controlar o probar. ¿Puedo sugerirle que obtenga una copia de Lingon que tiene una buena interfaz GUI para el trabajo, incluidas las pruebas?

    
respondido por el Tony Williams 09.06.2017 - 02:04

Lea otras preguntas en las etiquetas