1 回答
TA贡献1804条经验 获得超8个赞
如果主函数存在,则程序停止。什么都不会再运行了。它将释放任何使用的资源,例如文件描述符和数据库连接。
在下面的程序中,我们永远不会看到完成打印。
func main() {
go func() {
time.Sleep(time.Minute)
fmt.Println("done")
}()
time.Sleep(time.Second * 3)
}
https://play.golang.com/p/kPKZDdMcduS
如果具有该主要功能的程序是容器的前台进程,则容器将作为其与容器的标准行为而关闭。
如果你运行下面的例子,你可以观察到容器在睡眠结束后是如何关闭的。
$ docker run --name sample busybox sleep 3 && docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
fd4319261a0d busybox "sleep 3" 4 seconds ago Exited (0) Less than a second ago sample
如果正在运行程序的容器被关闭,那或多或少就像您要拔掉计算机的插头一样。您的计算机上将不再运行任何东西。不可能。
我鼓励您自己创建一些测试场景并进行验证。
- 1 回答
- 0 关注
- 100 浏览
添加回答
举报