在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 检查,以确保当有人想要启动长期运行的守护进程时一切仍能正常工作。