相关疑难解决方法(0)

bash:睡眠过程没有被杀死

我写了一个简单的bash脚本,除了睡觉之外什么都不做.

#!/bin/bash

echo "Sleeping..."
sleep 180s
Run Code Online (Sandbox Code Playgroud)

运行脚本后,我看到系统上运行了两个进程:

user 22880  0.0  0.0  12428  1412 pts/28   S+   20:12   0:00 /bin/bash ./sleep.sh
user 22881  0.0  0.0   7196   356 pts/28   S+   20:12   0:00 sleep 180s
Run Code Online (Sandbox Code Playgroud)

我通过使用哪个来杀死进程SIGTERM来给id 进程.但是,在此之后,我仍然看到运行的sleep命令在180秒后退出.22880kill -15 22880

user 22881  0.0  0.0   7196   356 pts/28   S    20:12   0:00 sleep 180s
Run Code Online (Sandbox Code Playgroud)

为什么会这样?如果不让sleep 180s流程继续运行,我需要做什么?

bash shell sleep signals

5
推荐指数
1
解决办法
2840
查看次数

Docker运行脚本捕获中断信号

我有一个 docker-compose.yml 启动多个容器。其中之一使用 Dockerimage 文件来安装该容器中所需的所有内容。

我想添加一个每次等待中断信号 0、9 和 137 时运行的脚本。

现在,我尝试将脚本作为 Dockerimage 文件中的入口点运行,但似乎不起作用。

这是 Dockerimage 文件的内容:

RUN apt-get update && [...]
WORKDIR "/application"
ENTRYPOINT ["/bin/bash", "-c", "/application/scripts/cl.sh"] 
Run Code Online (Sandbox Code Playgroud)

难道我做错了什么?我需要使用以下命令重建容器吗?

docker-compose build
Run Code Online (Sandbox Code Playgroud)

这是bash脚本cl.sh的内容

#!/bin/bash

echo "HELLO HELLO HELLO HELLO"

trap 'echo "Exiting with a 137 signal."' 137 0 9
Run Code Online (Sandbox Code Playgroud)

目前该脚本的唯一目的是测试所有功能。

bash docker dockerfile docker-compose

4
推荐指数
1
解决办法
4751
查看次数

加速 docker-compose 关闭

当我将应用程序设置为通过 运行时docker-compose up,需要几秒钟才能在 ctrl+c 上停止。但是,如果我运行docker kill ...,容器会很快停止。当通过 ctrl+c 杀死时,我可以做些什么来加速容器关闭docker-compose up

特别是,当 docker-compose 说它“正常停止”时,这实际上意味着什么?docker-compose 是否尝试了一些关闭协议,然后仅在超时后才终止我的容器?

docker-compose

3
推荐指数
2
解决办法
2339
查看次数

标签 统计

bash ×2

docker-compose ×2

docker ×1

dockerfile ×1

shell ×1

signals ×1

sleep ×1