systemd unit ordering baseado na disponibilidade do website

0

Eu tenho um par de unidades systemd para um relacionamento mestre / escravo. O slave.service só deve ativar se master.service us up, mas porque eles não estão no mesmo computador / nó, eu não posso usar a opção normal after= . O master.service pode ser testado se estiver servindo sua página de monitoramento, por exemplo: http://192.168.0.10:8000

Existem várias maneiras de testar se a página está ativa, por exemplo:

curl -sSf http://192.168.0.10:8000 > /dev/null

retornará um erro se o mestre não estiver pronto.

Existe uma maneira de ativar somente o slave.service se a página não retornar um erro com este ou qualquer outro comando / script?

Examinei as opções Condition*= e Assert*= , mas nada parece óbvio.

Aqui está o slave.service :

# /etc/systemd/system/netrender-slave.service

[Unit]
Description=Blender netrender slave manager
Documentation=https://github.com/timberline-secondary/blender-netrender-service
Wants=network-online.target
After=network-online.target

[Service]
Type=simple
WorkingDirectory=/opt/netrender-slave
ExecStart=/usr/bin/blender -b slave.blend --addons netrender -a -noaudio -nojoystick --enable-autoexec
Restart=on-failure

[Install]
WantedBy=multi-user.target
    
por 43Tesseracts 15.01.2018 / 22:00

0 respostas

Tags