Hay varias formas de ejecutar scripts al iniciar / cerrar sesión en OS X , algunas son más recientes y solo se aplican a 10.5 y superiores, algunas son bastante obsoletas, pero la más rápida sería agregar a Login Hook
.
Primero, cree el script que desea ejecutar. Abre una Terminal e ingresa:
touch ~/script.sh
open -e !$
Esto abrirá un editor de texto. Ingrese el script, por ejemplo, con los siguientes contenidos:
#!/bin/sh
# insert your script here
Guarda el archivo. En su terminal, ejecute:
chmod +x ~/script.sh
Esto hará que el archivo sea ejecutable. Ahora, vamos a agregarlo como un gancho:
sudo defaults write com.apple.loginwindow LoginHook /usr/local/bin/script.sh
También está la Logout Hook
contraparte:
sudo defaults write com.apple.loginwindow LogoutHook /usr/local/bin/script2.sh
He probado esto en OS X 10.6, y debería funcionar incluso hasta 10.8. Tenga en cuenta que el script se ejecuta como root
y solo hay un enlace para iniciar y cerrar sesión respectivamente.
Para deshacer todo eso, ingrese
sudo defaults delete com.apple.loginwindow LoginHook
sudo defaults delete com.apple.loginwindow LogoutHook
Tenga en cuenta que este método no se recomienda para la implementación ni nada, pero si solo lo está utilizando como se indica en su pregunta, no debería haber ningún problema.
Los enganches de inicio de sesión quedaron en desuso en 10.4 a favor de launchd. Para ejecutar un script al iniciar sesión, guarde un plist como este como
~/Library/LaunchAgents/test.plist
. Se carga en el próximo inicio de sesión, incluso si no se ejecutalaunchctl load ~/Library/LaunchAgents/test.plist
.Para obtener más información, consulte
man launchd.plist
y esta publicación de blog .fuente
Para que estos ganchos funcionen en 10.10, deberá hacer esto:
Abra el
/etc/ttys
archivo: en el Finder, elija Ir a la carpeta en el menú Ir, escriba/etc/
y luego haga clic en Ir.En la ventana resultante, abra el
ttys
archivo en su editor de texto preferido (como TextEdit).Busque una línea que lea:
console "/System/Library/CoreServices/loginwindow.app/Contents/MacOS/loginwindow" vt100 on secure window=/System/Library/CoreServices/WindowServer onoption="/usr/libexec/getty std.9600"
Edite esta línea para que se lea de la siguiente manera (no hay saltos en esta línea):
console "/System/Library/CoreServices/loginwindow.app/Contents/MacOS/loginwindow -LoginHook /path/to/script" vt100 on secure window=/System/Library/CoreServices/WindowServer onoption="/usr/libexec/getty std.9600"
es decir, agregue (donde está la ruta completa al script que desea ejecutar cuando un usuario inicia sesión) justo antes de la segunda comilla ( ).
-LoginHook /path/to/script
/path/to/script
"
Guarda el archivo.
Asegúrese de que el editor de texto que usa para editar este archivo no divida la línea de arriba en más de una línea.
o siga las instrucciones completas aquí:
http://support.apple.com/en-ca/HT2420
fuente