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
Tags systemd