Remember to maintain security and privacy. Do not share sensitive information. Procedimento.com.br may make mistakes. Verify important information. Termo de Responsabilidade
No ambiente Apple, especificamente no macOS, a criação e gerenciamento de serviços em segundo plano (background services) são realizados de maneira diferente em comparação com sistemas como Windows ou Linux. No macOS, os serviços em segundo plano são geralmente gerenciados pelo launchd
, um sistema de inicialização que pode iniciar, parar e gerenciar processos em segundo plano.
Exemplos:
launchd
Para criar um serviço em segundo plano no macOS, você precisa criar um arquivo de configuração plist
(Property List) que descreve o serviço. Este arquivo deve ser colocado no diretório apropriado para que launchd
possa gerenciá-lo.
plist
Crie um arquivo chamado com.exemplo.meuservico.plist
no diretório ~/Library/LaunchAgents/
para serviços específicos do usuário ou /Library/LaunchDaemons/
para serviços do sistema.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.exemplo.meuservico</string>
<key>ProgramArguments</key>
<array>
<string>/usr/bin/python3</string>
<string>/Users/seuusuario/meuscript.py</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>KeepAlive</key>
<true/>
</dict>
</plist>
Para carregar o serviço, use o comando launchctl
:
launchctl load ~/Library/LaunchAgents/com.exemplo.meuservico.plist
Para serviços do sistema, você pode precisar de permissões de administrador:
sudo launchctl load /Library/LaunchDaemons/com.exemplo.meuservico.plist
Você pode verificar o status do serviço usando:
launchctl list | grep com.exemplo.meuservico
Para descarregar o serviço, use:
launchctl unload ~/Library/LaunchAgents/com.exemplo.meuservico.plist
Para serviços do sistema:
sudo launchctl unload /Library/LaunchDaemons/com.exemplo.meuservico.plist
Vamos criar um serviço que executa um script Python simples que imprime "Hello, World!" a cada minuto.
meuscript.py
:import time
while True:
print("Hello, World!")
time.sleep(60)
Crie o arquivo plist
com.exemplo.meuservico.plist
conforme mostrado acima, certificando-se de ajustar o caminho para o script Python.
Carregue o serviço usando launchctl
.
launchctl load ~/Library/LaunchAgents/com.exemplo.meuservico.plist
launchctl list | grep com.exemplo.meuservico
launchctl unload ~/Library/LaunchAgents/com.exemplo.meuservico.plist