¿Es posible ejecutar un script cuando y sólo cuando ¿se cierra la sesión de un usuario? La razón por la que quiero hacer esto es para poder cambiar el mensaje de inicio de sesión ( sudo defaults write /Library/Preferences/com.apple.loginwindow LoginwindowText "Message"
). ¿Hay alguna forma de hacerlo?
Respuestas
¿Demasiados anuncios?Machints tiene un ejemplo de script disponible aquí para escribir los eventos de inicio y cierre de sesión en un archivo de registro.
Básicamente necesitas escribir tu script, darle derechos de ejecución y luego añadirlo al archivo LogoutHook
evento:
sudo defaults write com.apple.loginwindow \ LogoutHook /usr/local/bin/logoutscript
Para algunos script más avanzados también puedes echar un vistazo aquí
Solución alternativa
Eche un vistazo al lanzamientod servicios. Es el sistema de gestión de servicios integrado que utiliza OSX. Algunas sugerencias son hacer que launchd monitorice un archivo, y usando el logoutHook de arriba, tocar el archivo, lo que hará que launchd se ejecute. En el trabajo launchd puede dormir el proceso durante unos segundos para asegurarse de que el cierre de sesión se ha completado.
No es la solución ideal, pero podría funcionar.
Puedes cambiar el texto de tu pantalla de inicio de sesión, sin necesidad de ejecutar un script si se trata de un cambio puntual o poco frecuente. Tienes que añadir la clave
a /Library/Preferences/com.apple.loginwindow.plist ya sea con un editor de texto o mediante un comando de terminal que hace lo mismo. Este artículo describe ambas vías.
Consulte aquí cómo ejecutar un script: ¿Cómo puedo ejecutar/detener/reiniciar una aplicación automáticamente, en el arranque/inicio de sesión/en algún otro momento?
Haz que tu script compruebe si el usuario ha iniciado sesión. En caso afirmativo, salga. Si no, haz lo tuyo.