gpt4 book ai didi

kubernetes - 在 Kubernetes 的 pod 中优雅地停止 Java 进程?

转载 作者:行者123 更新时间:2023-12-02 12:24:10 28 4
gpt4 key购买 nike

我已阅读 docs关于在 Kubernetes 中优雅地终止 Pod,但我不太确定如何映射我优雅地关闭 Java 进程的特定用例。

我想要做的是在终止过程中运行以下 bash 命令:

$ kill -SIGTERM `pidof java`

我试过这个:
...    
lifecycle:
preStop:
exec:
command: ["kill", "-SIGTERM", "`pidof java`"]
...

但是什么都没有发生,但是当我停止 pod ( kubectl stop pod pod-xxx ) 时,Java 关闭 Hook 似乎没有启动。我怀疑 pidof java kill 的一部分命令不起作用(但我不确定)。我将如何在 Kubernetes 中做到这一点?

最佳答案

我在容器内启动了一个 bash shell 并改为执行我的命令,结果证明它可以工作:

command: ["/bin/bash", "-c", "PID=`pidof java` && kill -SIGTERM $PID && while ps -p $PID > /dev/null; do sleep 1; done;"]

没有 /bin/bash我无法让它工作。

关于kubernetes - 在 Kubernetes 的 pod 中优雅地停止 Java 进程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33613495/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com