2 votos

Cómo automatizar launchctl / reiniciar un demonio

En OSX 10.10 he creado un archivo plist en /Library/LaunchDaemons/ para empezar a lanzar una conexión OpenVPN. Sin embargo me encontré con problemas de DNS cuando se va de una conexión de internet a otro (como WiFi a la Red LAN) y pensé que tenía que reiniciar el demonio OpenVPN con launchctl solucionarlo.

Pero con este método tengo que ir a una consola, escriba un monstruoso launchctl del comando con sudo y, por supuesto, escriba la contraseña de administrador.

Puede que este proceso de tipificación ser automatizado?

Editar

Gracias por @bmike respuesta general que abra nuevos horizontes y @Graham Miln a pesar de que no me gusta de AppleScript, pero como @Marca solicitada aquí está mi .plist archivo :

<?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>KeepAlive</key>
    <true/>
    <key>Label</key>
    <string>net.openvpnd</string>
    <key>ProgramArguments</key>
    <array>
        <string>/usr/sbin/openvpn</string>
        <string>/a/path/to/file.ext</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
    <key>SuccessfullExit</key>
    <true/>
    <key>StandardErrorPath</key>
    <string>/Library/Logs/ovpnerr.log</string>
    <key>StandardOutPath</key>
    <string>/Library/Logs/ovpn.log</string>
    <key>EnvironmentVariables</key>
    <dict>
      <key>PATH</key>
      <string>/usr/sbin:/another/path</string>
    </dict>
</dict>
</plist>

1voto

Steve Evans Puntos 155

Puede automatizar este proceso mediante AppleScript del do shell script ... con privilegios de administrador de comandos.

do shell script "command" user name "username" password "pass" with administrator privileges

El AppleScript puede ser guardado como una aplicación y se lanzó como sea necesario.

Para evitar la necesidad de integrar las credenciales de administrador en el AppleScript, se omite el user name y password parámetros. Sin estos parámetros, se le pedirá que introduzca sus credenciales cada vez.

Para evitar la necesidad de autenticar cada vez, evitando de credenciales incrustadas, puede investigar el almacenamiento de las credenciales en su Llavero y la adición de su AppleScript aplicación para el Control de Acceso a través de la lista de Acceso a Llaveros.app.

-1voto

Oskar Puntos 1242

La primera cosa a automatizar es el uso de un alias de shell o escribir un shell/secuencia de comandos de Python para reducir la tipificación. Si usted elige una secuencia de comandos, usted podría agregar a la sudoers archivo para la contraseña de administrador no es necesario para que la secuencia de comandos.

El siguiente sería algo así como fastscripts o barra de inicio de aplicaciones para utilizar una tecla de acceso directo para activar la secuencia de comandos. Apple automatización de las herramientas de trabajo también. Hay docenas de maneras de mejorar o automatizar este proceso, pero las herramientas tienen una curva de aprendizaje para usar correctamente.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X