小编lee*_*777的帖子

如何在不影响重启策略的情况下向 Docker 容器发送信号?

TILdocker kill意思是“杀死”,意思是“让它死”,而不是 POSIX 意义上的“发送信号”。

\n

我们有几个集装箱需要发送SIGHUP以重新加载配置,但这会导致它们忽略“始终”的重新启动策略,这不是我们想要的。

\n

在不影响这些容器自动重启能力的情况下向这些容器发送信号的最佳方式是什么?

\n
\n

为了更清楚地展示我们所看到的问题,请看以下示例。

\n

我们有一些容器的重启策略设置为始终

\n
$ docker inspect cloudwatch-exporter | jq .[].HostConfig.RestartPolicy\n{\n  "Name": "always",\n  "MaximumRetryCount": 0\n}\n
Run Code Online (Sandbox Code Playgroud)\n

我们在某个时候重新加载配置docker kill

\n
$ docker kill --signal=SIGHUP cloudwatch-exporter\ncloudwatch-exporter\n
Run Code Online (Sandbox Code Playgroud)\n

一段时间后,发生了一些事情终止了该进程。为了模拟这一点,我将在容器内发送一个信号:

\n
$ docker exec cloudwatch-exporter bash -c "kill 1"\n
Run Code Online (Sandbox Code Playgroud)\n

此时,容器已死亡并且不会重新启动:

\n
$ docker ps -a | grep cloudwatch-exporter\nc7827204bba5        prom/cloudwatch-exporter:cloudwatch_exporter-0.8.0                                "java -jar /cloudwat\xe2\x80\xa6"   20 hours ago        Exited (143) 3 minutes ago                            cloudwatch-exporter\n
Run Code Online (Sandbox Code Playgroud)\n

我们有哪些替代方案可以使用docker kill …

signals docker

8
推荐指数
2
解决办法
4947
查看次数

当 puppet exec 作为用户时,如何为该用户设置环境?

我注意到当我使用useron 选项时exec,它不采用指定用户的环境。

$ sudo -i puppet apply -e "exec { '/usr/bin/env': logoutput => true, user => nobody}" 
notice: /Stage[main]//Exec[/usr/bin/env]/returns: SHELL=/bin/bash
notice: /Stage[main]//Exec[/usr/bin/env]/returns: USER=root
notice: /Stage[main]//Exec[/usr/bin/env]/returns: USERNAME=root
notice: /Stage[main]//Exec[/usr/bin/env]/returns: PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
notice: /Stage[main]//Exec[/usr/bin/env]/returns: MAIL=/var/mail/root
notice: /Stage[main]//Exec[/usr/bin/env]/returns: PWD=/root
notice: /Stage[main]//Exec[/usr/bin/env]/returns: HOME=/root
notice: /Stage[main]//Exec[/usr/bin/env]/returns: LOGNAME=root
notice: /Stage[main]//Exec[/usr/bin/env]/returns: executed successfully
Run Code Online (Sandbox Code Playgroud)

因此,尽管该命令运行为nobodyUSERHOME等不按预期设定。有什么方法可以exec模拟登录shell,以便按预期设置环境?

puppet

7
推荐指数
2
解决办法
7239
查看次数

标签 统计

docker ×1

puppet ×1

signals ×1