如何向(父进程?)发送信号告诉父进程子进程崩溃了

如何向(父进程?)发送信号告诉父进程子进程崩溃了

这可能不是最佳实践,但我正在尝试。我有一个与 docker 一起使用的entrypoint.sh 文件,如下所示:

ENTRYPOINT ["./entrypoint.sh"]

这是entrypoint.sh:

#!/usr/bin/env bash

args="$@"
echo "docker container arguments: '$args'"


"${args}" || {
    echo "Application exited with a non-zero code: '$?'";
    exit 1;
 }

好吧,事实上我将其更新为这样:

#!/usr/bin/env bash

args="$@"
echo "docker container arguments: '$args'"

while true; do
  "${args}" || {
    echo "Application exited with a non-zero code: '$?'";
    kill -SIGUSR1 "$(ps -o ppid= -p $$)"  ##### THIS
    sleep 3;
  };
done;

执行永远循环可能是一个坏主意 - 我们应该让它崩溃并重新启动一个新容器。

但为了论证——我的问题是-> 是否有一些信号可以发送给容器编排器,表明我的进程不断崩溃,以便将其取出并放入一个新的?

如果没有新的代码要部署,那么我会让它在 3 秒的间隔后自行重启。如果有新的代码,那么肯定要部署一个新的容器。

相关内容