linux下莫名其妙的某个服务就挂了,又不能马上找打原因,又不能让它一直挂。
可以尝试一些小而强悍的脚本,做临时的处理。
莫名其妙的某个docker容器就挂了,怎么办呢?
思路:
- 检测服务的状态,netstat或者ss命令可以获取服务的端口是否被占用,如果端口被占用则说明服务正常运行着,反之则挂了。也可以使用”docker ps |wc -l”来检测docker容器的数量(容器数量较小的时候可以使用,如果比较多需要加一些判断,确定具体是某个容器挂了)。
- 如果检测不到相对应的端口,就启动该服。因为本文的环境是docker的某个容器挂了。需要在docker启动的时候加上一条语句: docker update –restart=always <容器id>。让容器随着docker.service启动而启动。
- 输出日志,如果重启过一次,就输出日志。我们可以通过一些重启的日志来反向推到服务是在某种情况下挂掉的,从而判断问题可能出现的原因。最后进行解决或者规避。
抛砖引玉的小脚本,欢迎改进:
1 |
|