atu*_*pal 27 linux signals docker
我有一个程序在一个具有分离模式的docker容器中运行.
那么如何向这个程序发送SIGINT等信号呢?
And*_*ndy 68
您可以使用docker kill --signal="<signal>" <container name or id>任何信号发送到给定容器的根进程.
见http://docs.docker.com/engine/reference/commandline/kill/
Reg*_*gan 11
您可以使用nsenter进入容器空间并发送信号.
PID=$(docker inspect --format {{.State.Pid}} <container_name_or_ID>)
nsenter --target $PID --mount --uts --ipc --net --pid kill -SIGINT <PID of your program inside your container>
Run Code Online (Sandbox Code Playgroud)
更多信息:http://jpetazzo.github.io/2014/06/23/docker-ssh-considered-evil/
docker kill 用于向主容器进程发送信号,即用PID 1进行处理.$ docker kill --signal="SIGTERM" container-id/nameDockerfile.(根据申请更新)FROM centos:6.7
# Install/Deploye the service below.
# Copy the shell script.
COPY entrypoint.sh /home
EXPOSE 8080
ENTRYPOINT ["/home/entrypoint.sh"]
Run Code Online (Sandbox Code Playgroud)
下面是entrypoint.sh.(根据应用程序更新它).假设我们想要重新启动init.d服务.
#start the service
/etc/init.d/<servicename> start
pid="$!"
# SIGUSR1- Single handler
my_handler() {
/etc/init.d/<servicename> restart
}
# Trap and handle the user defind singnal.
trap 'my_handler' SIGUSR1
# wait forever(Alive container.)
while true
do
tail -f /dev/null & wait ${!}
done
Run Code Online (Sandbox Code Playgroud)$docker kill --signal="SIGUSR1" container-id/name | 归档时间: |
|
| 查看次数: |
18375 次 |
| 最近记录: |