如何检查docker守护进程是否正在运行?
我正在尝试创build一个bash实用程序脚本来检查docker守护程序是否在我的服务器上运行。 有没有更好的方法来检查docker守护进程是否在我的服务器上运行,而不是运行这样的代码?
ps -ef | grep docker root 1250 1 0 13:28 ? 00:00:04 /usr/bin/dockerd --selinux-enabled root 1598 1250 0 13:28 ? 00:00:00 docker-containerd -l unix:///var/run/docker/libcontainerd/docker-containerd.sock --shim docker-containerd-shim --metrics-interval=0 --start-timeout 2m --state-dir /var/run/docker/libcontainerd/containerd --runtime docker-runc root 10997 10916 0 19:47 pts/0 00:00:00 grep --color=auto docker
我想创build一个bash shell脚本来检查我的docker守护进程是否正在运行。 如果它正在运行,则不要执行任何操作,但是如果没有,则会启动docker守护进程。
我的伪代码是这样的。 我正在考虑parsing我的ps -ef的输出,但我只想知道是否有更有效的方法来做我的伪代码。
如果(docker不在运行)
run docker
结束
PS我不是Linux专家,我只需要在我自己的环境中执行此实用程序。
几乎所有的Linux系统上都有一个名为pgrep
的实用程序。
你可以做:
pgrep -f docker > /dev/null || echo "starting docker"
用您的docker starting命令replace`echo命令。
你也可以检查/var/run/docker.pid的存在
一个函数可能看起来如此:
isRunning { `ps -ef | grep "[d]ocker" | awk {'print $2'}` }
我创build了一个脚本来启动,停止,重新启动一个mongodb服务器。 你只需要改变脚本内的一些path,我也为你工作: 脚本