NixOS запускает пример процесса демона – пример не работает?

В примере приложения Python flask, приведенном на https://nixos.org/guides/dev-environment.html ... Разве это не просто убивает процесс демона независимо от того, проходит ли он проверку работоспособности или нет? Может быть, происходит что-то неявное, чего я не уловил?

Вы также можете запустить подобный bash-скрипт в своем CI, чтобы убедиться, что ваш default.nix продолжит работать в будущем.

      #!/usr/bin/env nix-shell
#! nix-shell -i bash
set -euo pipefail

# start myapp in background and save the process id
python myapp.py >> /dev/null 2>&1 &
pid=$!

# ok so we have the pid

if [[ $(curl --retry 3 --retry-delay 1 --retry-connrefused http://127.0.0.1:5000) == "Hello, Nix!" ]]; then
    echo "SUCCESS: myapp.py is serving the expected string"
    # and if the health check runs successfully, we kill the python process
    kill $pid
    exit 0
else
    echo "FAIL: myapp.py is not serving the expected string"
    # and if the health check fails, we kill the python process
    kill $pid
    exit 1
fi

1 ответ

В этом примере речь идет не о запуске демона в качестве долгоработающей службы, а о запуске демона в качестве кратковременной проверки CI, чтобы гарантировать, что все будет работать, когда кто-то действительно захочет запустить долгоработающий демон.

Другие вопросы по тегам