Eu tenho uma unidade systemd 'my-app' que executa meu aplicativo python principal, mas quero que ele seja atualizado automaticamente quando houver uma nova versão em um servidor remoto. A detecção é monitorada por outra unidade python systemd (vamos chamá-la de "watch-app") no mesmo sistema operacional que realiza verificações, baixa e substitui arquivos antigos por novos, e envia uma notificação para 'my-app' para que pode alterar seu estado para algo como "pronto para ser atualizado".
Estou procurando pelo menos a melhor estratégia para realizar esta tarefa. Encontrei o sdnotify mas não explica claramente como receber uma notificação e não consigo encontrar nenhum tutorial para isso.
Talvez eu esteja no caminho errado? Qualquer ajuda seria muito apreciada. THX
sdnotify
serve para um serviço se comunicar com o systemd sobre a mudança de seus estados (por exemplo, dependendo doType=
serviço, quando ele terminar de iniciar).Se quiser trocar informações entre serviços, faça como quiser; normalmente, os soquetes de domínio UNIX são uma maneira fácil, mas
dbus
são um bom método se você precisar de detecção de serviço, etc.Você permitiria que seu servidor observador simplesmente chamasse o systemd para interromper o serviço afetado, atualizar seus arquivos e chamar o systemd novamente. Não há necessidade de complicar as coisas!