Como posso executar um script toda vez que eu entro e saio do OS X?

4

O que eu quero é enviar uma URL com variáveis para um servidor que rastreará quando alguém estiver presente com base em quando eles fizerem login e sair de sua estação de trabalho.

Eu tentei definir o LoginHook em com.apple.loginwindow para "/ Users / Username / Desktop / script.sh". script.sh funciona quando eu o executo a partir do terminal, mas não é executado a partir do LoginHook .

O script executa o seguinte, onde $USER deve ser o nome do usuário atualmente conectado:

curl -kd "author=$USER&type=inout&message=in" https://some.server.com/timetrack
    
por bernk 24.10.2012 / 14:36

1 resposta

2

Usando LoginHook e LogoutHook conforme descrito em Como executar um script no login / logout no OS X? provavelmente seria a abordagem mais fácil. É considerado obsoleto, mas funciona até 10,8 e pode até funcionar além disso.

Verifique se o seu script tem um hashbang correto para que o processo de inicialização saiba como executá-lo. Afinal, seu script pode ser qualquer coisa, desde Ruby até Python ou simplesmente Bash.

Então, por exemplo:

sudo defaults write com.apple.loginwindow LoginHook /usr/local/bin/curl.sh

E /usr/local/bin/curl.sh sendo:

#!/bin/bash
curl -kd "author=${1}&type=inout&message=in" https://some.server.com/timetrack

Para acessar o usuário que está efetuando login, você precisa usar $1 em vez de $USER porque o último é uma variável que existe apenas em um ambiente real do shell, que não existe se você usar scripts de login.

    
por 24.10.2012 / 21:00