Estou tentando escrever um systemd service
que depende de um serviço systemd remoto . Existe alguma maneira "padrão" de realizar algo tão estranho quanto isso? Caso de uso para isso é algum software legado que precisa de um terminal remoto para estar pronto na inicialização.
Eu sei que poderia usar algo como wait-for-this em um serviço ExecStartPre
que verifica/espera até que alguma porta TCP remota específica esteja disponível (e possivelmente escreva uma .socket
unidade simples no controle remoto). Mas isso parece um pouco exagerado. Existe um método no próprio systemd para se comunicar com outro systemd remoto?
Se o serviço systemd remoto abrir alguma porta no servidor remoto, você poderá verificar se essa porta está aberta no serviço systemd local. Usando o bash você pode escrever algo como
Claro, você precisa dizer ao systemd para não iniciar este serviço até que a rede esteja ativa https://wiki.archlinux.org/index.php/Systemd#Running_services_after_the_network_is_up
Talvez algo como
ExecStartPre=systemctl --host=service-user@remote-host start remote-service
possa ser usado em ExecStartPre do arquivo de serviço local.