Como você cria um script ou aplicativo para executar ou parar a execução automaticamente quando o sistema é inicializado, quando um usuário faz logon, em um horário específico, quando um disco é anexado, etc.?
macos
boot
startup
login-items
prosseek
fonte
fonte
Respostas:
Método Gui
Se você deseja que algo seja executado quando um usuário efetua login, a maneira mais fácil é usar a GUI. Você pode
System Prefs > Accounts > Login Items
tela e adicione o item lá+
símbolo.app
no painelOptions
e selecioneOpen at Login
Método Launchd
Se você deseja iniciar algo que não é um
.app
, ou deseja ter mais controle sobre o lançamento, como:então você deseja usar a solução técnica que é
launchd
.A maneira mais fácil de configurar um
launchd
arquivo de configuração é usar uma ferramenta para ajudar. No momento da redação, o método mais popular é o Lingon (que tem uma versão gratuita mais antiga disponível no SourceForge), ou a ferramenta PList Website .Codificação manual
Se você não quiser usar o Lingon ou o site PList e quiser usar apenas as ferramentas brutas disponíveis no sistema, poderá escrever suas próprias
launchd
plist
manualmenteAqui está o meu script launchd para executar o SomeApp continuamente após a inicialização do sistema (independente do login de um usuário). Ele está em / System / Library / LaunchAgents / e é chamado SomeApp.restart.plist. Se for executado com base no login de um usuário, poderá ser armazenado em ~ / Library / LaunchAgents /
Carregue uma vez com
RunAtLoad
opção iniciará o aplicativo na primeira vez que o launchctl executar isso.KeepAlive
opção reiniciará o aplicativo se ele falhar.StartCalendarInterval
executará em um determinado momento. Presumivelmente, isso é mutuamente exclusivo dos dois anteriores, mas está incluído para mostrar o que pode ser feito comlaunchd
Há muitas opções adicionais que podem ser encontrados através da experimentação de Lingon ou lendo as páginas do manual para
launchctl
,launchd.plist
,plist
,launchd.conf
, etc.fonte
launchctl load -w ...
para tornar a alteração persistente. Com base no seu feedback que eu atualizei meu roteiro PowerUser configurador OSXLingon ainda funciona. Eu apenas o usei na semana passada para criar uma "tarefa agendada". Depois de baixá-lo, tive que usar seu atualizador automático para obter a versão mais recente, mas funciona bem.
fonte
Se for necessário executar apenas quando o sistema for inicializado, use a guia Itens de login do painel de preferências Contas em Preferências do sistema.
Se for um script, use o AppleScript Editor para salvá-lo como um aplicativo. Se não for um script AppleScript, você ainda poderá usar o AppleScript para executar o script desta forma:
do shell script "your script here"
fonte
Não se esqueça do Loginhooks.
Embora eles sejam executados como root, você deve poder executar um script $ HOME / .loginhook usando algo como isto:
Em seguida, basta adicionar os comandos que você deseja ao ~ / .loginhook
Além disso, embora 'launchd' seja "o caminho do Mac", o crontab ainda é uma opção perfeitamente viável e é muito mais fácil de editar manualmente do que os arquivos XML launchd.
Pessoalmente, paguei alegremente US $ 5 pelo Lingon .
fonte
/path/to/script
, esudo defaults write com.apple.loginwindow LoginHook /path/to/script
? E o ponto de executar um script no diretório inicial é que cada usuário pode ter um costume (ou não)~/.loginhook
?A execução de um aplicativo em um horário especificado pode ser feita facilmente no iCal, como acabei de descobrir graças a outro fórum!
Uma coisa a ter em atenção é que, se você tiver vários Macs compartilhando coisas pelo iCloud, esse evento também será executado nos aplicativos que você pode ou não desejar. Para que isso ocorra apenas em um único Mac, é necessário criar o evento em um calendário 'No meu Mac', que você pode fazer da seguinte maneira ...
Eu mesmo acabei de descobrir isso e fiquei agradavelmente surpreso com as duas dicas, então pensei em compartilhá-las aqui.
Eu recebi as informações dessas pessoas úteis por aqui ... então, obrigado!
http://osxdaily.com/2013/04/15/launch-file-app-scheduled-date-mac-os-x/
fonte