A idéia é que quando alguém fizer login no meu Mac, um pop-up será exibido e a data / hora serão gravadas em um log.
Eu executo o script bash a partir de um trabalho cron:
@reboot ~/Develop/login.sh
(Eu sei sobre o launchd, mas opto por usar o cron, muito mais fácil)
o script login.sh:
#!/bin/bash
osascript <<EOD
tell application "System Events"
activate
display dialog "Unauthorized Login" buttons {"OK"} default button 1 with icon caution with title "WARNING!"
end tell
EOD
echo "$(date) LogIn Alert" >> ~/Develop/login.log
Eu posso executar o script com ./login.sh. Tudo funcionando bem, a caixa de diálogo é mostrada e o tempo de login é gravado no log.
Porém, ao reiniciar o Mac, a data / hora do logon é gravada no arquivo (para que o trabalho cron esteja funcionando), mas a caixa de diálogo não aparece.
(Eu olhei para a pergunta Run AppleScript from bash script )
Então, minha pergunta é como mostrar essa caixa de diálogo ao reiniciar o meu Mac? (macOS 10.12.3)
applescript
bash
cron
Mick dK
fonte
fonte
Respostas:
Você deve executar seu script acima, não como um trabalho cron, mas como descrito nesta postagem (*):
https://stackoverflow.com/questions/6442364/running-script-upon-login-mac
Certifique-se de não confundir as coisas em execução na tela de login e as coisas em login do usuário, como na pergunta abaixo:
https://stackoverflow.com/questions/22842016/launch-shell-script-on-login-in-mac-os-os-x?noredirect=1&lq=1
Ainda assim, não é necessário registrar logins de usuários, pois eles são registrados automaticamente. Veja "man last" e "cat /var/log/authd.log".
(*) Parte relevante da postagem vinculada acima - ou use o launchd, conforme descrito no link
fonte
Você não deve precisar de Eventos do Sistema apenas para exibir uma caixa de diálogo, nem estritamente falando 'ativá-la' ...
tente apenas
Eu realmente não posso testá-lo, pois sou totalmente ignorante no cron / bash / osascript, mas isso seria tudo o que você precisaria para um Applescript comum exibir um diálogo.
Se isso não funcionar, o próximo passo seria configurá-lo no Automator, como um aplicativo, e depois iniciar o logon.
fonte