Existem várias maneiras de executar scripts no login / logout no OS X , algumas são mais recentes e aplicam-se apenas ao 10.5 e acima, outras são bastante obsoletas, mas a mais rápida seria adicionar a Login Hook
.
Primeiro, crie o script que você deseja executar. Abra um terminal e digite:
touch ~/script.sh
open -e !$
Isso abrirá um editor de texto. Digite o script, por exemplo, com o seguinte conteúdo:
#!/bin/sh
# insert your script here
Salve o arquivo. No seu terminal, execute:
chmod +x ~/script.sh
Isso tornará o arquivo executável. Agora, vamos adicioná-lo como um gancho:
sudo defaults write com.apple.loginwindow LoginHook /usr/local/bin/script.sh
Há também a Logout Hook
contraparte:
sudo defaults write com.apple.loginwindow LogoutHook /usr/local/bin/script2.sh
Eu testei isso no OS X 10.6 e deve funcionar até 10.8. Lembre-se de que o script é executado como root
e existe apenas um gancho para login e logout, respectivamente.
Para desfazer tudo isso, insira
sudo defaults delete com.apple.loginwindow LoginHook
sudo defaults delete com.apple.loginwindow LogoutHook
Observe que esse método não é recomendado para implantação nem nada, mas se você o estiver usando apenas como sua pergunta, isso não deve ser problema.
Os ganchos de login foram descontinuados na versão 10.4 em favor do launchd. Para executar um script no login, salve uma lista como esta como
~/Library/LaunchAgents/test.plist
. É carregado no próximo login, mesmo que você não executelaunchctl load ~/Library/LaunchAgents/test.plist
.Para mais informações, consulte
man launchd.plist
e este post do blog .fonte
Para que esses ganchos funcionem na versão 10.10, você precisará fazer o seguinte:
Abra o
/etc/ttys
arquivo: No Finder, escolha Ir para pasta no menu Ir, digite/etc/
e clique em Ir.Na janela resultante, abra o
ttys
arquivo no seu editor de texto preferido (como o TextEdit).Procure uma linha que leia:
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 linha para que fique da seguinte forma (não há quebras nesta linha):
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"
ou seja, adicione (onde está o caminho completo para o script que você deseja executar quando um usuário efetuar login) logo antes da segunda marca de citação ( ).
-LoginHook /path/to/script
/path/to/script
"
Salve o arquivo.
Certifique-se de que o editor de texto usado para editar este arquivo não divida a linha acima em mais de uma linha.
ou siga as instruções completas aqui:
http://support.apple.com/en-ca/HT2420
fonte