NixOS 启动守护进程示例 - 该示例是否损坏?

NixOS 启动守护进程示例 - 该示例是否损坏?

在python flask示例应用程序中https://nixos.org/guides/dev-environment.html... 不管守护进程是否通过健康检查,它不是都会被终止吗?也许其中有些隐含的东西我没搞清楚?

您还可以在 CI 中运行类似这样的 bash 脚本,以确保您的 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 检查,以确保当有人想要启动长期运行的守护进程时一切仍能正常工作。

相关内容